matplotlib在python3中失败
我想用matplotlib呈现一个6阶函数,它可以使用我找到的代码,但不能使用python3matplotlib在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]) #切东西 #这里我用一个函数得到
将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)))
不会想到的;-)非常感谢!