python scipy 插值函数

"""
    数据补全 插值
    根据离散散点  (使用不同的插值方式) 线性,三次样条等
    生成不同的 插值函数 用来获取连续的点
"""
import numpy as np
import scipy.interpolate as si
import matplotlib.pyplot as mp

# 准备数据
min_x = -50
max_x = 50
x = np.linspace(min_x, max_x, 17)
y = np.sinc(x)

# 绘制数据
mp.grid(linestyle=":")
mp.scatter(x, y, s=60, color="dodgerblue",
           marker="o", label="samples")

# 通过样本点 ==>  插值函数(线性)
linear = si.interp1d(x, y, kind="linear")

linear_x = np.linspace(min_x, max_x, 1000)
linear_y = linear(linear_x)
mp.plot(linear_x, linear_y, color="g",
        label="linear interp1d")

# 通过样本点 ==>  插值函数(三次样条)
cubic = si.interp1d(x, y, kind="cubic")

cubic_y = cubic(linear_x)
mp.plot(linear_x, cubic_y, color="r",
        label="cubic interp1d")

mp.legend()
mp.show()

python样条插值 python 插值函数库_样条