使用 scipy 拟合数据

Fit data with scipy

我有两个数据集,由不同的方程计算得出,现在我想将两个数据集拟合到同一条趋势线,或者将一个数据集拟合到另一个数据集。我想用橙色数据集约束蓝色数据集并获得红色趋势线,我想知道我是否可以使用 SciPy(scipy.optimize.leastsqscipy.optimize.curve_fit),但我没有知道怎么做,我不明白指令,因为他们要求一个函数作为输入,而这正是我想要的,函数,我有点(x,y)。

您可以使用 numpy.polynomial.polynomial 通过使用 least-squares 方法将 second-degree 多项式拟合到您的数据来执行此操作。

import numpy as np
import numpy.polynomial.polynomial as poly
import matplotlib.pyplot as plt

x = [1, 2, 3] # --> assuming your x-data
y = [0.1, 1, 10] # --> assuming your y-data

coefs = poly.polyfit(x, y, 2)
ffit = poly.Polynomial(coefs)
x_new = np.linspace(1, 3, 10) # --> more data points for a smooth curve

plt.plot(x, y, label="Data")
plt.plot(x_new, ffit(x_new), label="Fit")
plt.legend()
plt.show()

只需将 xyx_new 替换为您想要的值即可。