Matplotlib从3个点绘制样条曲线

2024-06-16 12:18:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我画了Spline跟帖:Matplotlib draw Spline from multiple points

但是当我从3个点画Spline

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] ] )

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()

我搞错了

^{pr2}$

所以,帮我从三个点画样条线:(


Tags: fromimportmatplotlibasnppltminmax
1条回答
网友
1楼 · 发布于 2024-06-16 12:18:11

点数(m)必须大于样条曲线的次数(k)。根据documentation,默认度数为k=3。由于有三个点,因此需要通过更改以下行将度数设置为2:

tck,u = interpolate.splprep( [x,y], k = 2)

3 point spline

相关问题 更多 >