在直方图里绘制拟合曲线
时间: 2023-08-25 14:04:40 浏览: 157
MATLAB——绘制正态拟合曲线直方图
要在直方图中绘制拟合曲线,可以使用 `scipy.stats` 库中的 `norm` 函数来生成正态分布数据,并使用 `matplotlib` 库中的 `plot` 函数将生成的正态分布曲线绘制到直方图中。以下是一个简单的示例代码:
```python
import pandas as pd
import matplotlib.pyplot as plt
from scipy.stats import norm
# 读取数据
df = pd.read_excel('data.xlsx')
data = df['data']
# 绘制直方图
plt.hist(data, bins=10, density=True, alpha=0.5)
# 计算正态分布的参数
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.show()
```
其中,`alpha` 参数指定直方图的透明度,可以使拟合曲线更清晰地显示出来。`norm.fit` 函数可以计算数据的平均值和标准差,用于生成正态分布曲线。`norm.pdf` 函数可以生成正态分布数据,`x` 是生成数据的横坐标,`mu` 和 `std` 是正态分布的平均值和标准差。最后使用 `plt.plot` 函数将生成的正态分布曲线绘制到直方图中。
阅读全文