python绘制堆叠柱状图_Python绘制堆叠柱状图的实例
时间: 2023-09-10 13:11:17 浏览: 129
Python绘制堆叠柱状图的实例
5星 · 资源好评率100%
好的,下面是Python绘制堆叠柱状图的实例:
首先我们需要导入以下库:
```python
import matplotlib.pyplot as plt
import numpy as np
```
然后,我们需要准备一些数据:
```python
labels = ['A', 'B', 'C', 'D', 'E'] # x轴标签
data1 = [10, 20, 30, 40, 50] # 第一组数据
data2 = [15, 25, 35, 45, 55] # 第二组数据
data3 = [5, 15, 25, 35, 45] # 第三组数据
```
接下来,我们需要计算每个柱子的位置和高度,并绘制堆叠柱状图:
```python
# 计算每个柱子的位置和高度
pos = list(range(len(labels)))
width = 0.2
fig, ax = plt.subplots(figsize=(8, 6))
ax.bar(pos, data1, width, alpha=0.5, color='b')
ax.bar(pos, data2, width, alpha=0.5, color='g', bottom=data1)
ax.bar(pos, data3, width, alpha=0.5, color='r', bottom=np.array(data1)+np.array(data2))
ax.set_ylabel('数量')
ax.set_xlabel('类别')
ax.set_title('堆叠柱状图')
ax.set_xticks(pos)
ax.set_xticklabels(labels)
plt.show()
```
代码解释:
- `pos`:每个柱子的位置,使用`list(range(len(labels)))`计算得到。
- `width`:每个柱子的宽度,这里设置为0.2。
- `fig, ax = plt.subplots(figsize=(8, 6))`:创建一个8*6的画布,并返回一个figure对象和一个axes对象。
- `ax.bar(pos, data1, width, alpha=0.5, color='b')`:绘制第一组数据的柱状图。
- `ax.bar(pos, data2, width, alpha=0.5, color='g', bottom=data1)`:绘制第二组数据的柱状图,并将其堆叠在第一组数据的柱子上面。
- `ax.bar(pos, data3, width, alpha=0.5, color='r', bottom=np.array(data1)+np.array(data2))`:绘制第三组数据的柱状图,并将其堆叠在前两组数据的柱子上面。
- `ax.set_ylabel('数量')`:设置y轴标签。
- `ax.set_xlabel('类别')`:设置x轴标签。
- `ax.set_title('堆叠柱状图')`:设置图表标题。
- `ax.set_xticks(pos)`:设置x轴刻度。
- `ax.set_xticklabels(labels)`:设置x轴标签。
- `plt.show()`:显示图表。
运行上述代码,即可得到一个堆叠柱状图。
阅读全文