matplotlib 堆叠柱状图
时间: 2023-10-03 22:09:56 浏览: 46
您好!要绘制堆叠柱状图,您可以使用matplotlib库来完成。下面是一个简单的例子,展示如何绘制堆叠柱状图:
```python
import numpy as np
import matplotlib.pyplot as plt
# 数据
categories = ['A', 'B', 'C', 'D'] # x轴坐标
values1 = [5, 8, 9, 6] # 第一个数据系列
values2 = [3, 2, 4, 7] # 第二个数据系列
values3 = [1, 6, 2, 5] # 第三个数据系列
# 绘图
fig, ax = plt.subplots()
ax.bar(categories, values1, label='Series 1')
ax.bar(categories, values2, bottom=values1, label='Series 2')
ax.bar(categories, values3, bottom=np.array(values1)+np.array(values2), label='Series 3')
# 添加图例和标签
ax.set_xlabel('Categories')
ax.set_ylabel('Values')
ax.legend()
plt.show()
```
上述代码将生成一个堆叠柱状图,其中x轴表示不同的类别,y轴表示数值,并分别堆叠显示了三个数据系列。您可以根据自己的需求修改数据和图形属性来创建您所需要的堆叠柱状图。
相关问题
matplotlib堆叠柱状图
堆叠柱状图是一种用于比较不同类别的数据之间的相对大小的图表类型。在matplotlib中,可以使用`bar`函数来绘制堆叠柱状图。下面的代码演示了如何绘制一个简单的堆叠柱状图:
```python
import matplotlib.pyplot as plt
import numpy as np
# 数据
labels = ['A', 'B', 'C', 'D', 'E']
men_means = [20, 35, 30, 35, 27]
women_means = [25, 32, 34, 20, 25]
# 绘制堆叠柱状图
fig, ax = plt.subplots()
ax.bar(labels, men_means, label='Men')
ax.bar(labels, women_means, bottom=men_means, label='Women')
# 添加图例和标签
ax.set_xlabel('Group')
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.legend()
plt.show()
```
上面的代码中,我们使用了两个数据系列:`men_means`和`women_means`,分别表示男性和女性的得分。通过`bar`函数绘制两个柱状图,并使用`bottom`参数将女性的柱状图放在男性的柱状图上面,从而实现堆叠效果。最后,我们添加了图例和标签,并使用`show`函数显示图表。
如果你需要绘制更复杂的堆叠柱状图,可以使用`barh`函数(水平柱状图)或者`stackplot`函数(堆叠面积图)。同时,你还可以使用`pandas`库来读取和处理数据,并使用`matplotlib`来绘制图表。
Matplotlib 堆叠柱状图
Matplotlib 是一个数据可视化的 Python 库,可以绘制多种图形,其中包括堆叠柱状图。堆叠柱状图可以用于比较多个组的数据在不同类别下的大小、比例和变化趋势。
下面是一个示例代码,展示如何使用 Matplotlib 绘制堆叠柱状图:
```python
import matplotlib.pyplot as plt
# 数据
labels = ['A', 'B', 'C', 'D', 'E']
men = [20, 35, 30, 35, 27]
women = [25, 32, 34, 20, 25]
# 绘图
fig, ax = plt.subplots()
ax.bar(labels, men, label='Men')
ax.bar(labels, women, bottom=men, label='Women')
# 添加标签和标题
ax.set_xlabel('Group')
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.legend()
# 显示图像
plt.show()
```
在这个示例中,我们定义了两个组的数据,分别是 men 和 women,它们在五个类别下的得分。使用 `ax.bar` 函数来绘制柱状图,其中 `bottom` 参数指定了上一个组的数据在该组数据下的起始位置,从而实现堆叠。最后,我们添加了标签和标题,并使用 `ax.legend` 函数添加图例。运行这段代码,就可以得到如下的堆叠柱状图:
![stacked_bar_chart](https://i.imgur.com/9XDjKuN.png)