Plotly如何在堆叠柱状图上同时显示分段值与柱顶总和
Plotly Express堆叠柱状图双标注实现
你现有代码通过text_auto=True已经实现了柱段单独数值的显示,要额外在每根堆叠柱顶部展示整柱总和,只需先按x轴维度分组计算总数值,再为每个柱添加独立的顶部注释即可,完整可运行代码如下:
import plotly.express as px # 加载示例数据、绘制基础堆叠柱状图 df = px.data.medals_long() fig = px.bar(df, x="medal", y="count", color="nation", text_auto=True) # 按x轴分类(奖牌类型)计算每个堆叠柱的总数值 total_by_medal = df.groupby("medal", as_index=False)["count"].sum() # 为每个堆叠柱添加顶部总和标注 for _, item in total_by_medal.iterrows(): fig.add_annotation( x=item["medal"], y=item["count"], text=item["count"], showarrow=False, yshift=8, # 标注向上偏移,避免和柱顶/分段标注重叠 font=dict(size=13, weight="bold") # 可自定义总和标注的字体样式 ) fig.show()
关键配置说明
- 原有
text_auto=True配置无需修改,会保留每个柱段的独立数值标注 - 分组计算总和时,分组字段需和绘图时传入的
x参数一致,求和字段需和y参数一致,可适配不同数据集场景 yshift参数控制总和标注与柱顶的垂直间距,可根据实际显示效果调整数值- 可通过
font参数单独配置总和标注的字号、颜色、字重,和分段标注做视觉区分
内容的提问来源于stack exchange,提问作者sumanta das
相关产品推荐
相关产品推荐

