Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.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 Matplotlib从多个点绘制样条曲线_Python_Matplotlib - Fatal编程技术网

Python Matplotlib从多个点绘制样条曲线

Python Matplotlib从多个点绘制样条曲线,python,matplotlib,Python,Matplotlib,我有数组点 nodes = [(1, 2), (6, 15), (10, 6), (10, 3), (3, 7)] 现在,我需要绘制通过点的样条曲线。您可以看到图像结果 但是我不知道如何使用matplotlib.pyplot绘图。帮帮我,正确的代码是: from __future__ import division import matplotlib.pyplot as plt import numpy as np from scipy import interpolate nodes

我有数组点

nodes = [(1, 2), (6, 15), (10, 6), (10, 3), (3, 7)]
现在,我需要绘制通过点的样条曲线。您可以看到图像结果


但是我不知道如何使用
matplotlib.pyplot
绘图。帮帮我,正确的代码是:

from __future__ import division
import matplotlib.pyplot as plt
import numpy as np
from scipy import interpolate


nodes = np.array( [ [1, 2], [6, 15], [10, 6], [10, 3], [3, 7] ] )

x = nodes[:,0]
y = nodes[:,1]

tck,u     = interpolate.splprep( [x,y] ,s = 0 )
xnew,ynew = interpolate.splev( np.linspace( 0, 1, 100 ), tck,der = 0)

plt.plot( x,y,'o' , xnew ,ynew )
plt.legend( [ 'data' , 'spline'] )
plt.axis( [ x.min() - 1 , x.max() + 1 , y.min() - 1 , y.max() + 2 ] )
plt.show()

对不起,这不是我想要的。这是根据您的代码使用matplotlib时的图像:。但是按照点坐标的顺序,它应该是这样的:用你最好的方法,我认为它是
polilyne
,而不是
Spline
Spline
,就像这里:@ductran:splprep用于找到这里所说的b样条曲线。检查我的更新!您好,您在最后一位代码的
splprep()
调用中错过了
s=0
,这就是样条曲线错过右下角的点并且与OP的期望输出不完全匹配的原因。我认为答案现在也可能需要一些编辑-你可以将代码从“最佳你来了”,在最后一张图片上方的代码中编辑,然后在“更新”之前删除所有内容,因为它不能真正回答原始问题。你应该删除“未来”导入部分的行
,或者将其移到顶部,否则会出现错误