Python 画两个堆积柱状图
引言
数据可视化是数据分析中不可或缺的一部分。它能够让我们更直观地理解数据,从而做出更好的决策。在很多情况下,我们希望通过柱状图来比较不同类别的数据。而堆积柱状图则是特别有用的工具,它可以帮助我们在同一图形中展示多个数据系列的相对贡献。本文将通过 Python 的 Matplotlib 库,教大家如何绘制两个堆积柱状图。
所需工具
为了解释如何绘制堆积柱状图,我们需要先安装 matplotlib
库。如果你的系统中尚未安装,可以通过以下命令进行安装:
pip install matplotlib
数据准备
在开始绘图之前,我们需要准备数据。在这篇文章中,我们会模拟一些数据,便于展示堆积柱状图的效果。
我们将创建两组数据,分别代表不同年份的销售额与成本。数据如下:
- 产品 A 和 B 的销售额
- 产品 A 和 B 的成本
我们假设这些数据是针对 2021 年和 2022 年的。
import numpy as np
# 数据准备
years = ['2021', '2022']
product_a_sales = [50, 70]
product_b_sales = [40, 60]
product_a_cost = [30, 40]
product_b_cost = [20, 30]
绘制堆积柱状图
绘制事例部分将采用 Matplotlib。我们将创建两个堆积柱状图,一个是销售额的堆积柱状图,另一个是成本的堆积柱状图。
1. 销售额堆积柱状图
我们首先绘制销售额的堆积柱状图。以下是绘图的代码:
import matplotlib.pyplot as plt
bar_width = 0.35
index = np.arange(len(years))
# 绘制销售额堆积柱状图
plt.bar(index, product_a_sales, bar_width, label='Product A Sales')
plt.bar(index, product_b_sales, bar_width, bottom=product_a_sales, label='Product B Sales')
# 添加标签和标题
plt.xlabel('Years')
plt.ylabel('Sales')
plt.title('Stacked Bar Chart of Sales by Year')
plt.xticks(index, years)
plt.legend()
# 显示图形
plt.show()
2. 成本堆积柱状图
接下来,我们绘制成本的堆积柱状图。代码如下:
# 绘制成本堆积柱状图
plt.bar(index, product_a_cost, bar_width, label='Product A Cost')
plt.bar(index, product_b_cost, bar_width, bottom=product_a_cost, label='Product B Cost')
# 添加标签和标题
plt.xlabel('Years')
plt.ylabel('Cost')
plt.title('Stacked Bar Chart of Cost by Year')
plt.xticks(index, years)
plt.legend()
# 显示图形
plt.show()
流程图
接下来,为了更好地理解绘制堆积柱状图的步骤,我们将以流程图的形式展示整个过程。以下是基于 Mermaid 语法描述的流程图:
flowchart TD
A[准备数据] --> B[导入Matplotlib]
B --> C{是否需要堆积柱状图?}
C -- 是 --> D[绘制销售额堆积柱状图]
D --> E[添加标签和标题]
E --> F[显示图形]
F --> G[绘制成本堆积柱状图]
G --> H[添加标签和标题]
H --> I[显示图形]
C -- 否 --> J[结束]
结论
通过本文的介绍,我们学习了如何使用 Python 的 Matplotlib 库绘制两个堆积柱状图。无论是销售额还是成本,我们都可以将不同产品的表现一目了然地展现在同一个图形中。当我们面对复杂的数据时,堆积柱状图无疑是一个极佳的选择。
希望这篇文章能够帮助你理解如何利用 Python 绘制堆积柱状图,进而在自己的工作和学习中应用数据可视化技术!如果你对数据可视化还有其他疑问,欢迎随时讨论。