如何使用Plotly Express在堆叠柱状图顶部添加每列总和标注
实现方法
你已经完成了分组求和的计算,直接调用Plotly的add_annotation方法批量添加标注即可,完整调整后的代码如下:
import plotly.express as px import pandas as pd # 原有创建堆叠柱状图的代码 fig = px.bar(data, x="Ano", y="Área (km²)", barmode='stack', color='Classe') # 建议明确指定对面积列求和,避免多列数据干扰计算结果 gp = data.groupby(['Ano'])['Área (km²)'].sum().reset_index() # 遍历每个年份和对应总和,添加柱顶标注 for ano, total in zip(gp['Ano'], gp['Área (km²)']): fig.add_annotation( x=ano, y=total, text=f"{total:.1f} km²", # 可自行调整数值格式、单位 showarrow=False, yshift=10, # 向上偏移避免和柱子顶部重叠,可按需调整数值 font=dict(size=12, color="#333") )
补充说明
- 标注会随图表一起被plotly.js正常渲染,无需额外修改Flask端的传参逻辑,按你原有方式把fig转成对应格式传到前端即可
- 如果你的堆叠柱存在负值,需要额外判断y轴偏移方向,全为正数的场景下上述代码可直接运行
- 可通过调整
yshift、font参数修改标注的位置和样式
内容的提问来源于stack exchange,提问作者Mauro Assis
相关产品推荐
相关产品推荐

