我已经尝试了一堆样条曲线的例子,已经张贴在python中绘制平滑曲线,但这些平滑曲线并不总是穿过真实点。到目前为止,我尝试使用make_interp_spline,interp1d和BSpline。是否有任何方法(任何样条选项)我可以绘制一条光滑的曲线,必须包括/交叉通过真实的数据点?
make_interp_spline
interp1d
BSpline
pepwfjgg1#
下面是一个简单的interp1d示例:
import numpy as np import matplotlib.pyplot as plt from scipy.interpolate import interp1d x = np.arange(5) y = np.random.random(5) fun = interp1d(x=x, y=y, kind=2) x2 = np.linspace(start=0, stop=4, num=1000) y2 = fun(x2) plt.plot(x2, y2, color='b') plt.plot(x, y, ls='', marker='o', color='r')
您可以轻松地验证此插值是否包含真实数据点:
assert np.allclose(fun(x), y)
1条答案
按热度按时间pepwfjgg1#
下面是一个简单的
interp1d
示例:您可以轻松地验证此插值是否包含真实数据点: