python - Matplotlib 从 3 个点绘制样条线

标签 python matplotlib

我画了 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()

我收到错误

raise TypeError('m > k must hold')
TypeError: m > k must hold

所以,帮我从 3 个点画出 Spline :(

最佳答案

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

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

3 point spline

关于python - Matplotlib 从 3 个点绘制样条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29934831/

相关文章:

python - Matplotlib 固定图形大小和子图位置

python - 用坐标绘制 NetworkX Graph

python - Scipy curve_fit 仅针对非常特定的 x 值静默失败

python - 如何查找具有重叠日期范围的行?

python - 为 Twisted 运行 setup.py install ... 错误 ModuleNotFoundError : No module named 'twisted'

python - 获取指向 Numpy/Numpypy 数据的指针的便携/快速方法

python - 如何使用 scikit 学习多类案例绘制 ROC 曲线?

python - pylab.hist(数据,规范=1)。规范化似乎工作不正确

python - 为 matplotlib tricontourf 设置掩码

python - 模块未找到错误: No module named 'application' when deploying Flask app on AWS Elastic Beanstalk