问题是由于
spline没有多余的自变量是阶数为3的。这意味着您没有足够的点/等式来获得样条曲线(这本身就表示对状态不佳的矩阵的警告)。您需要应用较低阶的样条,例如三次样条,其阶数为2:
import bokeh.plotting as bkfrom scipy.interpolate import splinep = bk.figure()xvals=np.linspace(1, 5, 10)y_smooth = spline(x,y,xvals, order=2) # This fixes your immediate problemp.line(xvals, y_smooth)bk.show(p)
此外,
splineSciPy中不推荐使用,因此即使有可能,也最好不要使用它。更好的解决方案是使用
CubicSpline此类:
import bokeh.plotting as bkfrom scipy.interpolate import CubicSplinep = bk.figure()xvals=np.linspace(1, 5, 10)spl = CubicSpline(x, y) # First generate spline functiony_smooth = spl(xvals) # then evalute for your interpolated pointsp.line(xvals, y_smooth)bk.show(p)
如可以看到的那样,
CubicSpline是相同的
spline的
order=2



