Matplotlib 中的水平堆叠条形图

pandas

1个回答

写回答

83476

2025-06-23 18:20

+ 关注

Python
Python

Matplotlib是一个广泛使用的Python数据可视化库,提供了丰富的绘图工具和函数,可以帮助我们更好地理解和展示数据。其中,水平堆叠条形图是一种常用的数据可视化方式,可以直观地比较不同类别之间的数据差异。本文将介绍Matplotlib中的水平堆叠条形图,并通过一个案例代码来演示其用法。

什么是水平堆叠条形图?

水平堆叠条形图是一种在水平方向上堆叠排列的条形图。它适用于多个类别之间的数据比较,可以清晰地展示每个类别的不同数据部分以及它们之间的总量关系。水平堆叠条形图通常用于可视化多个类别的组成或分布情况。

如何绘制水平堆叠条形图?

在Matplotlib中,可以使用barh函数绘制水平堆叠条形图。该函数的参数包括y轴的位置、条形的宽度、每个类别的数据以及堆叠的标签。通过设置不同的颜色和位置,可以实现多个类别之间的堆叠效果。另外,可以使用legend函数添加图例,使得每个类别的含义更加清晰。

案例代码

下面是一个使用Matplotlib绘制水平堆叠条形图的案例代码,假设我们有三个类别A、B和C,每个类别下有不同的子类别,并且我们想要比较它们的数量:

Python

import matplotlib.pyplot as plt

# 定义类别和子类别

categories = ['A', 'B', 'C']

subcategories = ['a1', 'a2', 'b1', 'b2', 'c1', 'c2']

# 定义每个子类别的数据

data_a = [4, 2, 3, 1, 2, 3]

data_b = [2, 3, 1, 4, 2, 3]

data_c = [3, 1, 2, 3, 4, 2]

# 绘制水平堆叠条形图

plt.barh(subcategories, data_a, label='A')

plt.barh(subcategories, data_b, left=data_a, label='B')

plt.barh(subcategories, data_c, left=[a+b for a,b in zip(data_a, data_b)], label='C')

# 设置图例和标题

plt.legend()

plt.title('水平堆叠条形图')

# 显示图形

plt.show()

运行以上代码,将得到一个水平堆叠条形图,其中每个子类别按照类别的顺序堆叠在一起。图例可以清晰地显示每个类别的含义,帮助我们更好地理解数据。

本文介绍了Matplotlib中的水平堆叠条形图的用法,并通过一个案例代码演示了其绘制过程。水平堆叠条形图是一种直观、简洁的数据可视化方式,适用于多个类别之间的数据比较。通过合理设置参数和添加图例,我们可以更好地展示数据,并从中获取有价值的信息。如果你在数据分析或报告中需要比较多个类别的数据,不妨尝试使用水平堆叠条形图来提升可视化效果。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号