如何在Plotly中绘制单根百分比堆叠柱状图展示各类疫苗占总体比例
Plotly 单根堆叠柱状图实现方案
你现有代码将疫苗类型索引作为y轴参数传入,因此每类疫苗会对应独立的y轴分类,最终生成多根独立柱子。要实现所有疫苗数据整合到同一根堆叠柱,可参考以下修改后的代码:
横向堆叠柱(和你原有展示方向一致)
import plotly.express as px # 新增固定值字段作为统一y轴分类,让所有疫苗数据对应同一根柱子 dose1_perc['categoria'] = '第一剂疫苗占比' grafico_dose1 = px.bar( dose1_perc, x="percentual (%)", y="categoria", color=dose1_perc.index, orientation='h' ) # 开启堆叠模式 grafico_dose1.update_layout(barmode='stack') # 可选配置:在堆叠区域内部显示百分比数值 grafico_dose1.update_traces(texttemplate='%{x:.1f}%', textposition='inside') grafico_dose1.show()
纵向堆叠柱(可选效果)
如果需要纵向展示单根堆叠柱,调整参数映射即可:
import plotly.express as px dose1_perc['categoria'] = '第一剂疫苗占比' grafico_dose1 = px.bar( dose1_perc, x="categoria", y="percentual (%)", color=dose1_perc.index ) grafico_dose1.update_layout(barmode='stack') grafico_dose1.update_traces(texttemplate='%{y:.1f}%', textposition='inside') grafico_dose1.show()
核心调整说明
- 新增固定值的分类字段,保证所有疫苗数据归属到同一个坐标轴分类下,才会渲染到同一根柱子上
- 显式指定
barmode='stack'开启堆叠模式,避免Plotly默认渲染为分组柱状图
内容的提问来源于stack exchange,提问作者Lucas Thaynan
相关产品推荐
相关产品推荐

