如何通过真实数据点绘制平滑曲线

问题描述 投票:0回答:1

我已经尝试了一堆已经发布的样条曲线示例,用于在 python 中绘制平滑曲线,但这些平滑曲线并不总是穿过真实点。到目前为止,我尝试使用

make_interp_spline
interp1d
还有
BSpline

有什么方法(任何样条选项)我可以绘制一条平滑曲线,必须包含/交叉通过真实数据点?

python matplotlib spline
1个回答
3
投票

这是一个简单的例子

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

plt.show()

您可以轻松验证此插值是否包含真实数据点:

assert np.allclose(fun(x), y)
© www.soinside.com 2019 - 2024. All rights reserved.