用python写出使用直方图拟合 标准正态分布曲线图
时间: 2024-11-03 10:19:50 浏览: 51
详解用Python为直方图绘制拟合曲线的两种方法
在Python中,我们可以使用matplotlib库来进行数据可视化,同时结合numpy和scipy库来生成标准正态分布的直方图并拟合它。以下是一个简单的示例:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# 创建一组随机样本,模拟标准正态分布
np.random.seed(0) # 设置随机种子保证结果可复现
data = norm.rvs(size=1000) # 使用norm函数生成标准正态分布的随机数
# 绘制原始数据的直方图
plt.hist(data, bins='auto', density=True, alpha=0.5, label='Sample data')
# 定义x轴范围和创建网格
mu, sigma = norm.fit(data) # 使用fit方法获取均值和标准差
x = np.linspace(mu - 3 * sigma, mu + 3 * sigma, 100)
# 拟合正态分布曲线
pdf = norm.pdf(x, mu, sigma)
plt.plot(x, pdf, 'r-', lw=2, label='PDF')
# 添加标题、标签和图例
plt.title('Histogram of Standard Normal Distribution')
plt.xlabel('Value')
plt.ylabel('Probability Density')
plt.legend()
plt.show()
```
这个脚本首先生成了标准正态分布的数据,然后绘制了直方图,接着计算出数据的均值和标准差,用于确定正态分布曲线的参数。最后,通过`norm.pdf`函数画出了正态分布曲线,并将其与直方图进行比较。
阅读全文