python dataframe某2列数据要做成柱形图 自定义柱形图每个柱子的统计范围,每个柱子范围不一样,做成一个2列数据的比对柱形图
时间: 2023-12-14 13:39:22 浏览: 32
可以使用`matplotlib`库来绘制柱形图,并且可以通过设置柱子宽度和位置来实现每个柱子的统计范围不一样。下面是一个示例代码,假设有一个`DataFrame`对象`df`,其中有两列数据`col1`和`col2`,需要将它们做成比对柱形图:
```python
import matplotlib.pyplot as plt
import numpy as np
# 设置每个柱子的位置和宽度
pos = np.array([0, 1, 3, 4, 6, 7])
width = np.array([0.5, 0.5, 0.5, 0.5, 0.5, 0.5])
# 获取每个柱子的高度值
col1_values = df['col1'].values
col2_values = df['col2'].values
# 绘制柱形图
fig, ax = plt.subplots()
ax.bar(pos, col1_values, width=width, label='col1')
ax.bar(pos + width, col2_values, width=width, label='col2')
# 设置坐标轴标签和标题
ax.set_xlabel('x axis label')
ax.set_ylabel('y axis label')
ax.set_title('Title')
# 设置图例
ax.legend()
plt.show()
```
在上面的代码中,`pos`数组用于设置每个柱子的位置,`width`数组用于设置每个柱子的宽度。`col1_values`和`col2_values`分别是`col1`和`col2`列的值。`ax.bar()`方法用于绘制柱形图,其中`width=width`用于设置柱子宽度,`label`参数用于设置每个柱子的标签。最后通过`ax.legend()`方法设置图例。运行上面的代码可以得到一个比对柱形图,其中每个柱子的范围不一样。