我试图用样条曲线绘制点+平滑线。但这条线“超出”了一些点,例如在下面的代码中,超过了0.85点。
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import spline
x=np.array([0.1, 0.3, 0.5, 0.7, 0.9, 1.1, 1.3, 1.5, 1.7, 1.9, 2])
y=np.array([0.57,0.85,0.66,0.84,0.59,0.55,0.61,0.76,0.54,0.55,0.48])
x_new = np.linspace(x.min(), x.max(),500)
y_smooth = spline(x, y, x_new)
plt.plot (x_new,y_smooth)
plt.scatter (x, y)
我该怎么修?
您可以尝试在scipy.interpolate中使用interp1d:
结果是:
文档中提供了
kind
参数的其他一些选项:相关问题 更多 >
编程相关推荐