【发布时间】:2021-10-14 15:37:06
【问题描述】:
我绘制了一个熵图。现在我想做一个曲线拟合,但我不明白如何启动这个过程。我使用scipy 的curve_fit 模块进行了尝试,但我得到的只是一条直线而不是高斯曲线。这是输出:
from scipy.optimize import curve_fit
x = [18,23,95,142,154,156,157,158,258,318,367,382,484,501,522,574,681,832,943,1071,1078,1101,1133,1153,1174,1264]
y = [0.179,0.179,0.692,0.574,0.669,0.295,0.295,0.295,0.387,0.179,0.179,0.462,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.462,0.179,0.387,0.179,0.295]
x = np.asarray(x)
y = np.asarray(y)
def Gauss(x, A, B):
y = A*np.exp(-1*B*x**2)
return y
parameters_g, covariance_g = curve_fit(Gauss, x, y)
fit_A = parameters_g[0]
fit_B = parameters_g[1]
print(fit_A)
print(fit_B)
fit_y = Gauss(x, fit_A, fit_B)
plt.figure(figsize=(18,10))
plt.plot(x, y, 'o', label='data')
plt.plot(x, fit_y, '-', label='fit')
plt.legend()
plt.show()
我刚刚使用样条连接了这些值并得到了这种曲线:
谁能建议我如何将这条曲线拟合成高斯曲线?
编辑 1:现在我有了条形图(有点),其中我有相应 x 值的 y 值。我的 x 轴范围从 0 到 1273,y 轴范围从 0 到 1。我怎样才能进行曲线拟合?这里的正确曲线是什么?我试图为给定数据拟合双峰曲线分布。您可以从这里找到数据。
条形图图片:https://i.stack.imgur.com/1Awt5.png
数据:https://drive.google.com/file/d/1_uiweIWRWgzy5wNVLOvn4WN25jteu8rQ/view?usp=sharing
【问题讨论】:
标签: python numpy matplotlib gaussian curve