如何在Plotly Express柱状图中同时显示数值计数与百分比
Plotly Express 柱状图同时显示计数与百分比
要实现柱状图同时显示分类的数值计数和对应百分比,只需在数据处理阶段生成包含两者的组合文本列,再传递给Plotly的text参数即可,具体步骤如下:
完整代码实现
# 统计分类数据的计数并重置索引 df1 = df['Category'].value_counts().reset_index(name='Total') # 计算百分比(保留1位小数) df1['Percentage'] = round((df1['Total'] / df1['Total'].sum()) * 100, 1) # 生成包含计数和百分比的组合文本 df1['Combined_Text'] = df1.apply(lambda row: f"{row['Total']} ({row['Percentage']}%)", axis=1) # 绘制柱状图 fig = px.bar(df1, x='index', y='Total', # 修正原代码中y轴参数错误,对应统计后的计数列 text_auto=False, text=df1['Combined_Text']) # 设置文本样式 fig.update_traces(textfont_size=12, textangle=0, cliponaxis=False, textposition="outside") fig.show()
关键说明
- 修正原代码中
y='values'的错误,需使用统计生成的Total列作为y轴数据 - 通过
apply方法生成Combined_Text列,将计数和百分比拼接为类似「120 (30.0%)」的格式 - 关闭
text_auto,手动指定text参数为组合文本列,确保同时展示两种信息
效果说明
最终生成的柱状图会在每个柱子外侧,同时显示该分类的具体计数数值和对应的占比百分比,满足示例图的展示需求。
内容的提问来源于stack exchange,提问作者WF30
相关产品推荐
相关产品推荐

