Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将numpy数组传递给函数时出现类型错误_Python_Function_Numpy_Matplotlib_Plot - Fatal编程技术网

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):
因为它似乎是classname
classname.plotBar(x1,y1)
的类方法,您似乎试图创建一个名为
plotBar
的类。创建方法时,第一个变量(通常称为
self
)是类实例。您可以尝试将
plotBar(x,y)
更改为
plotBar(self,x,y)
。如果下面的答案解决了您的问题,请接受它(不同于向上投票)-请参阅