在matplotlib中创建堆叠条形图,可以通过使用bar
函数和bottom
参数来实现。堆叠条形图是指在同一位置上堆叠多个条形图,每个条形图代表一个类别,堆叠的高度表示该类别的不同部分或子类别。
下面是创建堆叠条形图的步骤:
import matplotlib.pyplot as plt
import numpy as np
categories = ['A', 'B', 'C', 'D'] # 类别
subcategories = ['X', 'Y', 'Z'] # 子类别
data = np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6]]) # 数据
fig, ax = plt.subplots()
bars = []
bottom = np.zeros(len(categories)) # 初始堆叠高度
for i, subcat in enumerate(subcategories):
bar = ax.bar(categories, data[:, i], bottom=bottom, label=subcat)
bars.append(bar)
bottom += data[:, i] # 更新堆叠高度
ax.set_xlabel('Categories')
ax.set_ylabel('Values')
ax.set_title('Stacked Bar Chart')
ax.legend()
plt.show()
在上述代码中,首先创建了类别和子类别的列表,以及对应的数据矩阵。然后通过循环遍历子类别,使用bar
函数创建堆叠条形图,并将每个条形图对象添加到bars
列表中。在创建每个条形图时,通过bottom
参数指定堆叠的高度,初始值为0,并在每次循环中更新堆叠高度。
最后,设置坐标轴标签和标题,添加图例,并显示图形。
关于堆叠条形图的优势和应用场景,堆叠条形图可以直观地展示不同类别的子类别之间的比较和组成关系。它常用于展示多个类别的不同部分或子类别的大小比较,例如不同产品的销售额、不同地区的人口分布等。
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估和决策。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云