Python堆叠条形图
在数据可视化中,堆叠条形图是一种非常常见的图表类型,它可以同时比较各个类别数据的总数以及各个类别数据各部分的占比。在Python中,可以使用matplotlib库来绘制堆叠条形图。本文将详细介绍如何使用Python绘制堆叠条形图,并通过一个示例演示。
准备数据
在绘制堆叠条形图之前,首先需要准备数据。数据通常是一个二维数组,其中每一行表示一个类别,每一列表示该类别下不同部分的数据。在这个示例中,我们将准备如下数据:
import numpy as np
# 类别
categories = ['A', 'B', 'C', 'D', 'E']
# 数据
data = np.array([[23, 45, 56, 78, 33],
[33, 22, 43, 55, 63],
[12, 23, 45, 34, 54]])
绘制堆叠条形图
接下来,我们使用matplotlib库来绘制堆叠条形图。代码如下:
import matplotlib.pyplot as plt
# 设置图形大小
plt.figure(figsize=(10, 6))
# 绘制堆叠条形图
barWidth = 0.8
colors = ['r', 'g', 'b']
# 绘制堆叠条形图
bars = np.zeros(len(categories))
for i in range(len(data)):
plt.bar(categories, data[i], bottom=bars, color=colors[i % len(colors)], edgecolor='white', width=barWidth)
bars += data[i]
# 添加图例
plt.legend(['Part 1', 'Part 2', 'Part 3'])
# 添加标题和标签
plt.title('Stacked Bar Chart Example')
plt.xlabel('Categories')
plt.ylabel('Values')
# 显示图形
plt.show()
运行结果
运行上述代码,我们将得到如下堆叠条形图:
显示堆叠条形图示例
从图中可以看出,堆叠条形图清晰地展示了各个类别的总数以及各个类别数据各部分的占比,帮助我们更好地理解数据之间的关系。