如何打印高斯曲线拟合结果?

Nap*_*yoN 5 python curve-fitting scipy data-fitting gauss

我花了一些时间,但我使用下面的代码为我自己创建了适合我的 x,y 数据集的高斯拟合。

import matplotlib.pyplot as plt
import numpy as np
from scipy.optimize import curve_fit
def Gauss(x, a, x0, sigma, offset):
    return a * np.exp(-(x - x0)**2 / (2 * sigma**2)) + offset
x, y = np.random.random(100), np.random.random(100)
popt, pcov = curve_fit(Gauss, x, y, p0=[np.max(y), np.median(x), np.std(x), np.min(y)])
plt.plot(x, y, 'b+:', label='data')
x_fit = np.linspace(np.min(x), np.max(x), 1000)
plt.plot(x_fit, Gauss(x_fit, *popt), 'r-', label='fit')
plt.legend()
plt.title('Something')
plt.xlabel('Anotherthing')
plt.ylabel('Athing')
plt.show()
Run Code Online (Sandbox Code Playgroud)

我可以看到我的拟合效果很好,并且可以看到图表和所有内容。

图像

我现在想知道的是如何在屏幕上打印出该拟合的结果,例如拟合最大点上 x 的最大值、估计误差等?

这些信息可以访问吗?如果是这样,有没有办法打印出这些信息?如果没有,有人可以指出我找到拟合误差的正确方向吗?

tag*_*oma 3

相关信息包含在您的变量popt和中pcov。请参阅scipy 文档。您将返回每个变量的数组。