scipy.interpolate.interp1d'善意'无法正常工作

时间:2017-12-03 16:57:05

标签: python python-3.x scipy interpolation

我正在尝试使用interpolate.interp1d但是它有一些奇怪的行为。这是脚本:

x = np.linspace(0, 10, 10)  
y = np.cos(-x**2/9.0)
f = interp1d(x, y, kind='cubic')

plt.figure(figsize=(10,7))
plt.plot(x, y, 'o', x, f(x), '--')
plt.legend(['data', 'interp'], loc='best')
plt.show()
plt.pause(2**31-1)

但我得到的结果就像我传递的那种='线性'。实际上,无论参数'kind',结果都是一样的。我错过了什么吗? enter image description here

1 个答案:

答案 0 :(得分:4)

您只是将它绘制在您正在使用的x值上,因此您只能看到那里的协议以及这些点之间的线条。如果你在0到10之间的更多点上绘制它(例如np.linspace(0, 10, 100),你将开始看到差异:

sample interpolation output