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 绘制堆积柱状图,进而在自己的工作和学习中应用数据可视化技术!如果你对数据可视化还有其他疑问,欢迎随时讨论。