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

使用plotnine绘制堆叠条形图如何正确显示每组求和汇总统计值

问题原因

你的代码问题出在stat_summary默认继承了全局ggplot定义的fill='V2'美学映射,会自动按照V2的分组分别计算每个子组的求和结果,所以显示的是每个堆叠分段的数值,而不是整个V1分组的总和。

解决方法

只需要在stat_summary中关闭美学继承,同时手动指定x、y映射即可,也可以额外调整文本位置避免和柱子重叠,修正后代码如下:

import io
import pandas as pd
import plotnine as p9

data_string = """V1,V2,value
                 A,a,1
                 A,b,2
                 B,a,3 
                 B,b,4"""

data = io.StringIO(data_string)
df = pd.read_csv(data, sep=",")

p9.ggplot(df, p9.aes(x='V1', y='value', fill = 'V2')) + \
                p9.geom_bar(stat = 'sum') + \
                # 关闭继承全局美学,避免按V2分组,手动指定x和y映射
                p9.stat_summary(p9.aes(x='V1', y='value', label ='stat(y)'), 
                                fun_y = sum, 
                                geom = "text",
                                inherit_aes=False,
                                vjust=-0.2) # 调整文本位置,向上偏移避免和柱子重叠

运行后就会在A、B组的堆叠柱顶部分别显示3、7的总和数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 20:09:00