堆叠条形图(Stacked Bar Chart)是一种数据可视化图表,它通过堆叠不同类别的数据来展示每个类别的总和以及各部分之间的比例关系。在堆叠条形图中,每个条形代表一个类别,条形的各个部分代表该类别下的不同子类别。
堆叠条形图通常用于展示时间序列数据、分类数据的占比情况等。每个条形的总高度表示总量,而不同颜色的部分则表示各子类别的占比。
堆叠条形图主要有两种类型:
堆叠条形图常用于以下场景:
对堆叠条形图进行重新排序可以通过以下几种方式实现:
以下是一个使用Matplotlib库生成和重新排序堆叠条形图的示例代码:
import matplotlib.pyplot as plt
import numpy as np
# 数据
categories = ['A', 'B', 'C', 'D']
sub_categories = ['X', 'Y', 'Z']
data = {
'A': [30, 20, 50],
'B': [40, 10, 30],
'C': [20, 30, 40],
'D': [50, 40, 10]
}
# 按总和排序
sorted_categories = sorted(categories, key=lambda x: sum(data[x]), reverse=True)
# 绘制堆叠条形图
fig, ax = plt.subplots()
bottom = np.zeros(len(sorted_categories))
for i, sub_category in enumerate(sub_categories):
values = [data[category][i] for category in sorted_categories]
ax.bar(sorted_categories, values, bottom=bottom, label=sub_category)
bottom += np.array(values)
ax.set_xlabel('Categories')
ax.set_ylabel('Values')
ax.set_title('Stacked Bar Chart with Reordering')
ax.legend()
plt.show()
通过上述代码,你可以生成一个按总和排序的堆叠条形图。根据具体需求,你可以调整排序方式和数据展示方式。
领取专属 10元无门槛券
手把手带您无忧上云