python频率分布直方图
时间: 2023-08-29 16:09:58 浏览: 101
在Python中,可以使用`matplotlib`库绘制频率分布直方图。假设你已经有一组数据,可以按照以下步骤进行绘制:
1. 导入`matplotlib`库和数据:
```python
import matplotlib.pyplot as plt
import numpy as np
data = np.random.normal(0, 1, 1000) # 生成1000个服从标准正态分布的随机数
```
2. 计算频率分布:
```python
hist, bins = np.histogram(data, bins=20) # 将数据分成20个bins,计算每个bin的频数
freq = hist / len(data) # 计算每个bin的频率
```
3. 绘制直方图:
```python
plt.bar(bins[:-1], freq, width=(bins[1]-bins[0]), align='edge', edgecolor='black')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram of Data')
plt.show()
```
其中,`plt.bar()`函数用于绘制直方图,`bins[:-1]`表示每个bin的左边界,`freq`表示每个bin的频率,`width`表示每个bin的宽度,`align`表示对齐方式,`edgecolor`表示边框颜色。`plt.xlabel()`和`plt.ylabel()`分别用于设置x轴和y轴的标签,`plt.title()`用于设置标题。最后使用`plt.show()`函数显示图像。
这样就可以绘制出频率分布直方图了。具体代码如下:
```python
import matplotlib.pyplot as plt
import numpy as np
data = np.random.normal(0, 1, 1000) # 生成1000个服从标准正态分布的随机数
hist, bins = np.histogram(data, bins=20) # 将数据分成20个bins,计算每个bin的频数
freq = hist / len(data) # 计算每个bin的频率
plt.bar(bins[:-1], freq, width=(bins[1]-bins[0]), align='edge', edgecolor='black')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram of Data')
plt.show()
```
运行结果如下图所示:
![频率分布直方图](https://img-blog.csdnimg.cn/20211020142505349.png)
阅读全文