python画直方图设置bin宽度
时间: 2024-09-23 09:03:51 浏览: 77
Python基于matplotlib绘制栈式直方图的方法示例
5星 · 资源好评率100%
在Python中,使用matplotlib库来绘制直方图时,你可以通过`numpy.histogram()`函数计算数据的分箱(bins),然后利用`plt.hist()`函数画出直方图,并设置bin宽度。`numpy.histogram()`函数的`bins`参数可以接受几种类型的值:
1. **整数**:直接指定bin的数量,例如 `bins=10` 将数据分为10等宽的区间。
2. **浮点数**:表示每个bin的宽度,例如 `bins=0.2` 表示每个bin的宽度是数据范围的20%。
3. **数组**:提供一个具体的边界数组,如 `[0, 1, 2, 3, 4]`,将数据分成5个等宽区间。
下面是一个例子:
```python
import numpy as np
import matplotlib.pyplot as plt
# 示例数据
data = np.random.randn(1000)
# 设置bin宽度为0.5
hist, bins = np.histogram(data, bins=0.5)
# 创建直方图
plt.hist(bins[:-1], weights=hist, width=bins[1]-bins[0]) # bins[:-1]用于去除最后一个边界值
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram with custom bin width')
plt.show()
```
阅读全文