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()