我正在尝试进行线性插值
编码:
from scipy.interpolate import interp1d
x_ = [2., 2.8, 16.7]
y_ = [0.87678869, 0.49044994, 1.4322675]
y_std = []
plt.plot(x_, y_, marker='o', color='k')
f = interp1d(x_, y_, kind='linear', bounds_error=False)
plt.plot(x_, f(x_), marker='o', color='tab:green')
plt.show()
我期望得到一条直线,但结果似乎是分段拟合。有人能告诉我哪里出了问题吗?
1条答案
按热度按时间dhxwm5r41#
插值只填充点之间的内容,因此它必须命中原始数据集中的每一个点。
你要做的是进行线性回归:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.linregress.html