使用Python绘制堆积条形图

使用Python绘制堆积条形图

  • 堆积条形图
  • 效果
  • 代码

堆积条形图

堆积条形图(Stacked Bar Chart)是一种扩展的条形图,用于显示多个子类别数据的累积效果。在堆积条形图中,每个条形被分成多个部分,每个部分代表一个子类别的数据量,从而展示出每个类别的总量以及各子类别在总量中的占比。

效果

[外链图片转存中…(img-yxzPy9Tc-1720413009591)]

代码

import matplotlib.pyplot as plt
import numpy as np

# 数据
categories = ['Category A', 'Category B', 'Category C', 'Category D']
subcategories1 = [5, 10, 15, 20]
subcategories2 = [3, 7, 8, 12]
subcategories3 = [2, 3, 4, 5]

# 生成位置
bar_width = 0.5
r = np.arange(len(categories))

# 绘制堆积条形图(横向)
plt.barh(r, subcategories1, color='b', edgecolor='white', height=bar_width, label='Subcategory 1')
plt.barh(r, subcategories2, left=subcategories1, color='r', edgecolor='white', height=bar_width, label='Subcategory 2')
plt.barh(r, subcategories3, left=np.array(subcategories1)+np.array(subcategories2), color='g', edgecolor='white', height=bar_width, label='Subcategory 3')

# 添加标签和标题
plt.ylabel('Category', fontweight='bold')
plt.xlabel('Values', fontweight='bold')
plt.yticks(r, categories)
plt.title('Horizontal Stacked Bar Chart Example')

# 添加图例
plt.legend()

# 显示图表
plt.show()

堆积条形图是一种统计图表,用于展示各个分类下不同子分类的数量或比例,其中每个条形图的部分堆叠在一起。在绘制堆积条形图时,通常需要使用数据可视化工具或编程库,例如Microsoft Excel、Python的matplotlib库等。以下是一个使用Python中matplotlib库绘制堆积条形图的基本步骤: 1. 准备数据:你需要准备两个或多个数值列表,每个列表代表条形图中的一个子分类数据。 2. 导入必要的库:如果你使用的是Python,你需要导入matplotlib.pyplot库用于绘图。 3. 创建条形图使用`plt.bar()`函数创建条形图的基本框架。 4. 叠加数据:在同一个轴上,使用`plt.bar()`函数重复创建条形图,每次调用都对应一组子分类数据,设置相应的`bottom`参数以将条形图叠加起来。 5. 添加图表元素:如标题、标签、图例等,以使图表更加清晰易懂。 6. 显示图表:使用`plt.show()`函数来显示最终的堆积条形图。 以下是一个简单的代码示例: ```python import matplotlib.pyplot as plt # 准备数据 categories = ['Category A', 'Category B', 'Category C'] data1 = [20, 35, 30] data2 = [25, 32, 15] data3 = [45, 20, 25] # 定义条形图的位置 x = range(len(categories)) # 绘制堆积条形图 plt.bar(x, data1, label='Subcategory 1', color='skyblue') plt.bar(x, data2, bottom=data1, label='Subcategory 2', color='lightgreen') plt.bar(x, data3, bottom=[sum(x) for x in zip(data1, data2)], label='Subcategory 3', color='salmon') # 添加图表元素 plt.xlabel('Categories') plt.ylabel('Values') plt.title('Stacked Bar Chart Example') plt.xticks(x, categories) plt.legend() # 显示图表 plt.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

立秋6789

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值