【发布时间】:2023-03-28 10:45:01
【问题描述】:
我正在尝试将具有三个结的三次样条曲线拟合到某些数据中,以绘制变量的季节性。我的 X 数据是一年中的天数(基本上是范围 (0,366)),y 数据是季节性变量。
如何创建适合数据的具有三个结的三次样条?
我尝试过使用:
spline = sp.interpolate.interp1d(Xdata, ydata, kind='cubic')
还有:
spline = CubicSpline(Xdata, ydata, bc_type='periodic')
但是,使用以下方法绘制结果:
plt.plot(range(0,366), spline(range(0,366)))
生成我的 ydata 的精确图,其中包含所有可能的噪声。我正在尝试创建一条适合数据的平滑线。
我的目标是创建一个季节性模型,该模型在第 0 天和第 365 天具有相同的 y(x) 值,以及在这些值之间弯曲 3 次的样条曲线。
【问题讨论】:
-
一个稍微好一点的方法:from scipy.interpolate import UnivariateSpline spl = UnivariateSpline(Xdata, ydata) plt.plot(Xdata, spl(Xdata), 'g', lw=3)
标签: python pandas scipy spline cubic-spline