2744557306 发表于 2024-3-15 11:06

使用 scipy 包进行样条插值


1.导入必要的库:   import numpy as np

   from scipy.interpolate import interp1d

   import matplotlib.pyplot as plt2.定义原始数据:   x = np.array()

   y = np.array()这里的 x 和 y 是原始数据点的 x 和 y 坐标。

3.进行一次、二次和三次样条插值:   p1 = interp1d(x, y, kind='linear')

   p2 = interp1d(x, y, kind='quadratic')

   p3 = interp1d(x, y, kind='cubic')使用 interp1d 函数进行一次、二次和三次样条插值,分别指定插值方法为线性插值、二次插值和三次插值,并得到插值函数 p1、p2 和 p3。

4.生成新的 x 值:   x1 = np.linspace(1, 17, 100)使用 np.linspace() 函数生成了一组新的 x 值,在范围从 1 到 17 之间均匀分布,用于绘制插值曲线。

5.计算对应的 y 值:   y1 = p1(x1)

   y2 = p2(x1)

   y3 = p3(x1)

使用插值函数 p1、p2 和 p3 计算了对应于新 x 值的插值结果。

6.绘制图形:   plt.scatter(x, y)

   plt.plot(x1, y1, label='linear')

   plt.plot(x1, y2, label='quadratic')

   plt.plot(x1, y3, label='cubic')

   plt.legend()使用 plt.scatter() 绘制原始数据点,使用 plt.plot() 绘制插值曲线,并添加图例,标记不同插值方法对应的曲线类型。

7.显示图形:

   plt.show()

最后,显示绘制的图形,包括原始数据点和插值曲线。
这样,你就可以观察到原始数据点以及根据不同插值方法得到的插值曲线。


页: [1]
查看完整版本: 使用 scipy 包进行样条插值