Python 将numpy数组传递给函数时出现类型错误
不知道为什么我在尝试绘制条形图时总是出错Python 将numpy数组传递给函数时出现类型错误,python,function,numpy,matplotlib,plot,Python,Function,Numpy,Matplotlib,Plot,不知道为什么我在尝试绘制条形图时总是出错 def plotBar(x,y): plt.bar(x, y, width=1, align='center', color='plum', edgecolor='firebrick',linewidth=1) plt.show() 大体上,我是这样调用函数的: x1=np.arange(1,101) y1=np.arange(50,151) classname.plotBar(x1,y1) 然而,我不断地发现这个错误: Type
def plotBar(x,y):
plt.bar(x, y, width=1, align='center', color='plum', edgecolor='firebrick',linewidth=1)
plt.show()
大体上,我是这样调用函数的:
x1=np.arange(1,101)
y1=np.arange(50,151)
classname.plotBar(x1,y1)
然而,我不断地发现这个错误:
TypeError:plotBar()接受2个位置参数,但给出了3个
我将函数声明为类中的静态方法:
class Xxx:
@staticmethod
def plotBar(x,y):
plt.bar(x, y, width=1, align='center', color='plum',
edgecolor='firebrick', linewidth=1)
plt.show()
下一个修正是两个阵列的长度必须相等,
所以我改变了y的定义,这样它也有100个元素:
x1 = np.arange(1,101)
y1 = np.arange(51,151)
(以前它有101个元素)
然后我叫它:
Xxx.plotBar(x1,y1)
还有一张图片。您需要将plotBar声明为:
def plotBar(self,x,y):
因为它似乎是classnameclassname.plotBar(x1,y1)
的类方法,您似乎试图创建一个名为plotBar
的类。创建方法时,第一个变量(通常称为self
)是类实例。您可以尝试将plotBar(x,y)
更改为plotBar(self,x,y)
。如果下面的答案解决了您的问题,请接受它(不同于向上投票)-请参阅