如何在Plotly堆叠柱状图上方显示单柱总计?
实现Plotly堆叠柱状图顶部显示总计数值
你可以通过以下步骤实现每个堆叠柱状图顶部显示总计数值:
- 计算每个Scheme的总计:先对原数据按
Scheme分组,求和得到每个堆叠柱的总数值 - 添加总计文本层:在原有堆叠图基础上,用散点图的文本模式把总计数值放在对应柱子顶部
完整代码示例
import pandas as pd import plotly.express as px # 计算每个Scheme的总计 df_totals = df_scheme.groupby('Scheme')['Total'].sum().reset_index(name='Total_Sum') # 绘制堆叠柱状图 bar_chart_3 = px.bar( df_scheme, x='Scheme', y='Total', hover_name='Calc Type', text='Total', # 保留每个分段的数值显示 color='Scheme', title='Number of scheme categories' ) # 添加总计文本到堆叠柱顶部 bar_chart_3.add_scatter( x=df_totals['Scheme'], y=df_totals['Total_Sum'], text=df_totals['Total_Sum'], mode='text', textposition='top center', showlegend=False ) # 布局设置 bar_chart_3.update_layout( xaxis={'categoryorder':'total descending'}, width=500, showlegend=False, ) bar_chart_3.show()
关键说明
df_totals通过groupby和sum得到每个Scheme对应的总数值,确保和堆叠柱的实际高度一致- 使用
add_scatter的文本模式添加总计,textposition='top center'保证文本精准定位在柱子顶部中心 - 原代码中显示分段数值的
text='Total'可以保留,不影响总计文本的显示
内容的提问来源于stack exchange,提问作者lostcoder
相关产品推荐
相关产品推荐

