【发布时间】:2023-03-04 02:42:02
【问题描述】:
我正在尝试插入我的数据集(第一列是时间,第三列是实际数据):
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d
data = np.genfromtxt("data.csv", delimiter=" ")
x = data[:, 0]
y = data[:, 2]
xx = np.linspace(x.min(), x.max(), 1000)
y_smooth = interp1d(x, y)(xx)
#y_smooth = interp1d(x, y, kind="cubic")(xx)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(xx, y_smooth, "r-")
plt.show()
但我发现线性插值和三次插值之间存在一些奇怪的差异。 这是线性的结果:
立方也是一样的:
我不确定,为什么图一直在跳,y_smooth 包含不正确的值?
ipdb> y_smooth_linear.max()
141.5481144
ipdb> y_smooth_cubic.max()
1.2663431888584225e+18
谁能给我解释一下,我怎样才能改变我的代码来实现正确的插值?
UPD:这里是data.cvs file
【问题讨论】:
-
@rth 我添加了指向我的问题的链接
标签: python scipy interpolation