python dataframe某列数据要做成柱形图 自定义柱形图每个柱子的统计范围,每个柱子范围不一样,画布大小自定义,改成对数指标
时间: 2023-12-10 22:42:47 浏览: 114
使用pandas中的DataFrame数据绘制柱状图的方法
你可以使用`matplotlib`库来绘制自定义柱形图,下面是一个简单的例子,假设`df`是你的数据框,其中有`value`列需要绘制柱形图:
```python
import numpy as np
import matplotlib.pyplot as plt
# 自定义每个柱子的统计范围
bins = [0, 10, 20, 30, 40, 50, 100, 200, 500]
# 统计各范围内的数据数量
counts, _ = np.histogram(df['value'], bins=bins)
# 计算各范围的左右边界和宽度
left_edge = bins[:-1]
right_edge = bins[1:]
width = right_edge - left_edge
# 画布大小自定义
fig, ax = plt.subplots(figsize=(10, 6))
# 绘制柱形图
ax.bar(left_edge, counts, width=width, log=True)
# 设置x轴标签和标题
ax.set_xticks(bins)
ax.set_xticklabels([f'{left}-{right}' for left, right in zip(left_edge, right_edge)])
ax.set_xlabel('Value')
ax.set_ylabel('Count')
ax.set_title('Customized Histogram')
plt.show()
```
在上面的代码中,`bins`列表定义了每个柱子的统计范围,`np.histogram`函数用来计算各范围内的数据数量,`left_edge`、`right_edge`和`width`分别是各范围的左右边界和宽度。 `ax.bar`函数用来绘制柱形图,其中`log=True`表示将y轴改为对数指标。`ax.set_xticks`和`ax.set_xticklabels`函数设置x轴标签,`ax.set_xlabel`、`ax.set_ylabel`和`ax.set_title`函数分别设置x轴标签、y轴标签和图表标题。
阅读全文