Python画柱状图(双柱状图,三柱状图)且显示对应数值
时间: 2023-06-29 12:14:04 浏览: 95
在Python中,使用matplotlib库可以绘制柱状图。以下是一个示例代码,可以用来绘制带有数值标签的双柱状图:
```python
import matplotlib.pyplot as plt
import numpy as np
# 数据
labels = ['A', 'B', 'C', 'D', 'E']
values1 = [20, 35, 30, 25, 40]
values2 = [15, 30, 45, 20, 35]
# 生成位置
x = np.arange(len(labels))
# 绘制柱状图
width = 0.35
fig, ax = plt.subplots()
rects1 = ax.bar(x - width/2, values1, width, label='Values1')
rects2 = ax.bar(x + width/2, values2, width, label='Values2')
# 添加数值标签
def autolabel(rects):
for rect in rects:
height = rect.get_height()
ax.annotate('{}'.format(height),
xy=(rect.get_x() + rect.get_width() / 2, height),
xytext=(0, 3), # 3 points vertical offset
textcoords="offset points",
ha='center', va='bottom')
autolabel(rects1)
autolabel(rects2)
# 添加图例、标题和轴标签
ax.set_xticks(x)
ax.set_xticklabels(labels)
ax.legend()
ax.set_title('Double Bar Chart')
ax.set_xlabel('Categories')
ax.set_ylabel('Values')
plt.show()
```
这个示例代码中,使用`np.arange()`函数生成了柱状图的位置。`plt.bar()`函数用来绘制柱状图,`width`参数设置柱子的宽度。`autolabel()`函数用来添加柱子上的数值标签。最后,使用`ax.legend()`函数添加图例,使用`ax.set_title()`、`ax.set_xlabel()`和`ax.set_ylabel()`函数添加标题和轴标签。
你可以将`values1`和`values2`替换为你自己的数据,然后运行代码来绘制双柱状图。对于三柱状图,只需要在代码中添加一个`values3`的数据列表,并且使用`plt.bar()`函数绘制第三组柱状图即可。
阅读全文