如何为Plotly柱状图添加分数低于0.9的聚合统计展示
实现方案
Plotly 完全可以满足该需求,无需更换其他可视化库,核心是先对原始数据做聚合处理再绘图即可。首先先修正你原代码里的语法错误:原代码color="Count", "features": "Features"},行存在多余的括号和参数格式错误,悬浮展示字段需要通过hover_data参数传入。
具体实现步骤
- 先对原始数据集做拆分聚合:将所有分数小于0.9的记录的计数值求和,合并为单独的「<0.9 汇总」分类
- 保留分数大于等于0.9的原始数据条目
- 拼接两部分数据,将汇总分类放在x轴最左侧,再调用柱状图接口绘制即可
- 可按需给汇总柱设置差异化颜色、添加数值标注,和普通分数柱做视觉区分
可直接运行的代码示例
import pandas as pd import plotly.express as px # 数据聚合处理 # 计算分数<0.9的总计数 low_score_total = loans_scores_df[loans_scores_df["Score"] < 0.9]["Count"].sum() low_score_part = pd.DataFrame({ "Score": ["<0.9(汇总)"], "Count": [low_score_total], "Features": ["分数低于0.9的所有特征计数合计"] }) # 保留分数>=0.9的原始数据 high_score_part = loans_scores_df[loans_scores_df["Score"] >= 0.9].copy() # 拼接为最终绘图数据集,汇总项默认排在最前 plot_data = pd.concat([low_score_part, high_score_part], ignore_index=True) # 绘制柱状图 fig = px.bar( plot_data, x="Score", y="Count", color="Count", hover_data=["Features"], height=400, color_continuous_scale="Blues" ) # 可选:给汇总柱设置突出显示的颜色 fig.update_traces( marker_color=["#e74c3c" if val == "<0.9(汇总)" else None for val in plot_data["Score"]] ) # 可选:给汇总柱添加合计值标注 fig.add_annotation( x=0, y=low_score_total, text=f"合计:{low_score_total}", yshift=12, showarrow=False ) fig.show()
其他可选展示形式
如果不想把汇总值和普通分数柱放在同一坐标轴,也可以用plotly.subplots.make_subplots创建左右布局的子图:左侧单独放一个指标卡/短柱展示<0.9的总计数,右侧放>=0.9区间的分数分布柱状图,信息区分度会更高。
内容的提问来源于stack exchange,提问作者InsDSt
相关产品推荐
相关产品推荐

