【问题标题】:How do you create a cubic spline with knots in Python?如何在 Python 中创建带结的三次样条曲线?
【发布时间】: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


【解决方案1】:

来自 scipy.interpolate 的make_lsq_spline 使用固定的预定义结创建最小二乘样条拟合。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多