首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

100%堆叠条形图- python (seaborn/matplotlib)

基础概念

堆叠条形图(Stacked Bar Chart)是一种用于展示多个类别数据之间关系的图表类型。在堆叠条形图中,每个条形被分为多个部分,每个部分代表一个子类别的数据。堆叠条形图可以直观地展示数据的总和以及各个子类别的分布情况。

相关优势

  1. 直观展示数据总和:堆叠条形图可以清晰地展示每个类别的总和。
  2. 展示子类别分布:通过堆叠的方式,可以直观地看到每个子类别在总数据中的占比。
  3. 便于比较:可以方便地比较不同类别之间的数据分布情况。

类型

堆叠条形图主要有两种类型:

  1. 垂直堆叠条形图:条形是垂直排列的。
  2. 水平堆叠条形图:条形是水平排列的。

应用场景

堆叠条形图常用于以下场景:

  • 展示不同时间段内的数据变化。
  • 展示不同类别中各个子类别的分布情况。
  • 展示多个变量在同一个类别中的占比。

示例代码(使用Seaborn)

代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt

# 示例数据
data = {
    'Category': ['A', 'B', 'C'],
    'Subcategory1': [10, 15, 7],
    'Subcategory2': [15, 8, 12],
    'Subcategory3': [7, 12, 10]
}

df = pd.DataFrame(data)

# 绘制堆叠条形图
plt.figure(figsize=(10, 6))
sns.barplot(data=df, x='Category', y='Subcategory1', color='red')
sns.barplot(data=df, x='Category', y='Subcategory2', color='green')
sns.barplot(data=df, x='Category', y='Subcategory3', color='blue')

plt.xlabel('Category')
plt.ylabel('Value')
plt.title('Stacked Bar Chart')
plt.legend(['Subcategory1', 'Subcategory2', 'Subcategory3'])
plt.show()

示例代码(使用Matplotlib)

代码语言:txt
复制
import matplotlib.pyplot as plt
import numpy as np

# 示例数据
categories = ['A', 'B', 'C']
subcategory1 = [10, 15, 7]
subcategory2 = [15, 8, 12]
subcategory3 = [7, 12, 10]

# 绘制堆叠条形图
fig, ax = plt.subplots(figsize=(10, 6))

bar_width = 0.35
index = np.arange(len(categories))

bar1 = ax.bar(index, subcategory1, bar_width, label='Subcategory1')
bar2 = ax.bar(index, subcategory2, bar_width, bottom=subcategory1, label='Subcategory2')
bar3 = ax.bar(index, subcategory3, bar_width, bottom=[i+j for i,j in zip(subcategory1, subcategory2)], label='Subcategory3')

ax.set_xlabel('Category')
ax.set_ylabel('Value')
ax.set_title('Stacked Bar Chart')
ax.set_xticks(index)
ax.set_xticklabels(categories)
ax.legend()

plt.show()

参考链接

常见问题及解决方法

  1. 条形图重叠:确保每个子类别的数据正确累加。
  2. 颜色选择:选择对比度较高的颜色以便区分不同的子类别。
  3. 标签和图例:确保图例和标签清晰,便于理解。

通过以上方法,你可以创建一个清晰且易于理解的堆叠条形图。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券