You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pandas绘图中将同一列两类数据合并为单根堆叠柱状条

实现堆叠柱状图的方法

核心逻辑:你当前使用的是长表结构数据,需要先转换为宽表(透视表)格式,再开启堆叠参数即可实现需求。


完整可运行代码

import pandas as pd

# 原始数据
df = pd.DataFrame([['A', 'Blue', 30], ['A', 'Red', 180], ['B', 'Blue', 50], ['B', 'Red', 340], ['C', 'Blue', 70], ['C', 'Red', 930]])
df.columns = ['Type', 'Color', 'Count']

# 1. 长表转宽表,调整列顺序保证Red层在下方、Blue层在上方
df_pivot = df.pivot(index='Type', columns='Color', values='Count')[['Red', 'Blue']]

# 2. 绘制堆叠柱状图,指定颜色与类别对应
df_pivot.plot.bar(stacked=True, color=['red', 'blue'], rot=0, ylabel='Count')

逻辑说明

  • 透视后的df_pivot为宽表结构,每个Type对应一行,Red、Blue分别为两列存储对应计数值,结构如下:
Color  Red  Blue
Type            
A      180    30
B      340    50
C      930    70
  • stacked=True参数开启柱状图堆叠模式,同一行的多列数值会合并为同一根柱子展示
  • 主动调整列顺序+指定对应颜色,严格符合Red层在下、Blue层在上的展示要求,且两类颜色差异明确

内容的提问来源于stack exchange,提问作者Sky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 10:24:02