Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.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
matplotlib在python3中失败_Python_Matplotlib - Fatal编程技术网

matplotlib在python3中失败

matplotlib在python3中失败,python,matplotlib,Python,Matplotlib,我想用matplotlib呈现一个6阶函数,它可以使用我找到的代码,但不能使用python3 将numpy导入为np 从matplotlib导入pyplot作为plt def langrange_多项式(X,Y): 定义L(i): 如果i!=j])*Y[i],则返回范围(len(x))内j的λx:np.prod([(x-x[j])/(x[i]-x[j]) Sx=[L(i)表示范围内的i(len(X))]#求和 返回λx:np.sum([s(x)表示Sx中的s]) #切东西 #这里我用一个函数得到

我想用matplotlib呈现一个6阶函数,它可以使用我找到的代码,但不能使用python3

将numpy导入为np
从matplotlib导入pyplot作为plt
def langrange_多项式(X,Y):
定义L(i):
如果i!=j])*Y[i],则返回范围(len(x))内j的λx:np.prod([(x-x[j])/(x[i]-x[j])
Sx=[L(i)表示范围内的i(len(X))]#求和
返回λx:np.sum([s(x)表示Sx中的s])
#切东西
#这里我用一个函数得到点
(X,Y)=[1,2,3,4,5,6,7],[0,20,10,4,3,40,4]
F=langrange_多项式(X,Y)
x_range=np.linspace(x[0],x[-1],100)
plt.绘图(X,Y,'ro')
plt.绘图(x_范围,地图(F,x_范围))
plt.xlabel(r'$x$')
plt.ylabel(r'$F(x)$'))
plt.title(‘拉格朗日多项式插值’)
plt.grid(真)
plt.show()
获取此错误:

raise ValueError("x and y must have same first dimension")
ValueError: x and y must have same first dimension
在这方面:

plt.plot(x_range, map(F, x_range))
我读到了一些关于将X,Y坐标声明为np.array的内容,但这无论如何都不起作用。在Python3.5中我必须做什么?

在Python3中,
map(function,iterable)
返回迭代器而不是列表。
您需要通过获取列表

list(map(function, iterable))
或者,更具体地说,在这种情况下

plt.plot(x_range, list(map(F, x_range)))

不会想到的;-)非常感谢!