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

如何为按日期分组的堆叠条形图设置条形标签以显示当月合计值

问题原因

你当前代码的问题在于:str(df[df['A']==X]['B'].sum()) 会先计算每个A分类下所有月份B列的总合计值,仅返回单个字符串,plotly会把这同一个字符串绑定到该分类下所有月份的条形上,因此所有条形都会显示全局合计值。

修改方案

要让每个条形仅显示对应月份的数值,只需给text参数传入和x、y长度完全匹配的序列,每个位置的元素对应同位置条形要展示的文本即可。

修改后的代码如下:

import plotly.graph_objects as go

df = data[['Month', 'A', 'B']]
traces = []

for X in df['A'].unique():    
    filtered_df = df[df['A']==X]
    trace = go.Bar(
            x = filtered_df['Month'],
            y = filtered_df['B'],
            # 直接传入对应月份的B列数值,plotly会自动逐个匹配到对应条形
            text = filtered_df['B'],
            # 如果需要自定义文本格式(比如保留2位小数、加单位),可以用下面的写法
            # text = filtered_df['B'].apply(lambda x: f"{x:.2f}")
    )
    traces.append(trace)

# 后续绘图逻辑保持不变
fig = go.Figure(traces)
fig.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:09:03