12 堆叠柱状图的绘制

在继续我们的绘图旅程中,今天我们将讨论 Matplotlib 中堆叠柱状图的绘制。在上篇文章中,我们了解到如何绘制基本的柱状图,而现在,我们要进一步探讨如何将多个数据系列堆叠在同一根柱子上,以便更好地比较不同类别的数据。

堆叠柱状图的概念

堆叠柱状图 是用于显示不同数据系列在每个分类上的总量及其组成部分的一种图形表示方式。不同的颜色代表不同的数据系列,堆叠在同一柱子上,可以直观地显示各个类别间的关系。

创建堆叠柱状图

为了创建堆叠柱状图,我们依然使用 matplotlib.pyplot 中的 bar 函数,但会对每一个数据系列进行单独处理,确保它们能够堆叠在一起。

示例案例

假设我们要展示某公司在过去四年中各个季度的销售额,具体如下:

  • 产品A:2019年销售额分别为 [5000, 7000, 8000, 6000]
  • 产品B:2019年销售额分别为 [3000, 4000, 5000, 3000]

接下来我们将绘制这两个产品在四个季度的堆叠柱状图。

示例代码

下面是代码实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import matplotlib.pyplot as plt
import numpy as np

# 定义数据
quarters = ['Q1', 'Q2', 'Q3', 'Q4']
sales_A = [5000, 7000, 8000, 6000]
sales_B = [3000, 4000, 5000, 3000]

# 计算每个季度的位置
x = np.arange(len(quarters))

# 创建柱状图
plt.bar(x, sales_A, label='产品A', color='blue') # 绘制产品A的柱状图
plt.bar(x, sales_B, bottom=sales_A, label='产品B', color='orange') # 将产品B堆叠在产品A上

# 添加标签和标题
plt.xlabel('季度')
plt.ylabel('销售额')
plt.title('2019年各季度产品销售额比较')
plt.xticks(x, quarters) # 设置x轴刻度
plt.legend() # 显示图例

# 展示图形
plt.show()

代码解析

  1. 首先,我们导入必要的库 matplotlib.pyplotnumpy
  2. 我们定义了每个季度的标签和两个产品的销售额数据。
  3. 使用 np.arange 函数来生成每个季度在 x 轴上的位置。
  4. 我们调用 plt.bar 绘制产品A的柱状图,设置其颜色为蓝色。
  5. 随后,再次调用 plt.bar 绘制产品B的柱状图,重要的是,设置 bottom=sales_A,这样就能够在产品A的柱子上方堆叠产品B的柱子,实现堆叠效果。
  6. 最后,添加标签、标题及图例,调用 plt.show() 展示最终的图形。

堆叠柱状图的优缺点

优点:

  • 清晰展现多个数据系列的总量和组成;
  • 适用于对比多个分类的组合数据。

缺点:

  • 如果堆叠的部分较多,阅读和理解较难;
  • 柱子的高度可能会遮住下方的数据。

总结

今天我们学习了如何在 Matplotlib 中绘制一个堆叠柱状图,使得多个数据系列能够直观地呈现在同一个图形中。接下来,在我们的系列教程中,我们将更进一步,探讨绘制饼图的基本用法。希望大家继续关注我们的教程,掌握更多绘图技巧!

12 堆叠柱状图的绘制

https://zglg.work/matplotlib-zero/12/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论