如何对直方图进行高斯拟合
时间: 2023-06-05 14:08:36 浏览: 517
最小二乘拟合Gauss曲线Matlab
你可以使用Python中的Scipy库中的curve_fit函数对直方图进行高斯拟合。首先需要导入Scipy库和Matplotlib库,然后使用hist函数绘制直方图,接着定义高斯函数(即正态分布函数)并使用curve_fit函数对该函数进行拟合,最后使用plot函数绘制高斯曲线即可。具体代码实现可参考以下示例:
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
# 生成随机数据
data = np.random.normal(0, 1, 1000)
# 绘制直方图
n, bins, patches = plt.hist(data, bins=30, density=True)
# 定义高斯函数
def gaussian(x, mu, sigma, A):
return A*np.exp(-(x-mu)**2/(2*sigma**2))
# 对高斯函数进行拟合
popt, pcov = curve_fit(gaussian, bins[:-1], n)
# 绘制高斯曲线
plt.plot(bins[:-1], gaussian(bins[:-1], *popt), 'r--')
# 显示图像
plt.show()
阅读全文