对直方图进行高斯拟合代码
时间: 2023-07-09 07:54:05 浏览: 74
在Python中,可以使用`numpy`和`matplotlib`库来实现直方图高斯拟合。以下是一个简单的代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# 生成随机数据
data = np.random.randn(1000)
# 绘制直方图
plt.hist(data, bins=50, density=True)
# 计算拟合参数
mu, std = norm.fit(data)
# 绘制拟合曲线
xmin, xmax = plt.xlim()
x = np.linspace(xmin, xmax, 100)
p = norm.pdf(x, mu, std)
plt.plot(x, p, 'k', linewidth=2)
# 添加图例和标签
plt.title("Histogram with Gaussian Fit")
plt.legend(['Gaussian fit', 'Histogram'])
plt.xlabel('Data')
plt.ylabel('Frequency')
plt.show()
```
在上述代码中,首先生成了一组随机数据,并使用`plt.hist()`函数绘制了直方图。然后,使用`norm.fit()`函数计算了拟合参数(均值和标准差),并利用`norm.pdf()`函数生成了高斯分布的概率密度函数。最后,通过`plt.plot()`函数绘制了拟合曲线,并添加了图例和标签。运行上述代码,即可得到带有高斯拟合曲线的直方图。
阅读全文