如何将按审计时间分组的DataFrame条形图按数值降序排列?
解决Plotly条形图统一排序问题
你遇到的问题是因为Plotly默认会根据color参数的分组调整x轴顺序,导致条形被拆分到两侧。要实现所有条形按NombreUtilisateur2017从大到小统一排序,只需在绘图时强制固定x轴的分类顺序即可:
修改后的代码
# 按用户数降序排序DataFrame applications = applications.sort_values(by='NombreUtilisateur2017', ascending=False) # 提取排序后的项目编码顺序 app_code_order = applications['AppCode'].tolist() # 创建条形图并指定x轴的固定顺序 fig = px.bar( applications, x='AppCode', y='NombreUtilisateur2017', color='test_avant_2014', category_orders={'AppCode': app_code_order} # 强制x轴使用排序后的顺序 ) fig.show()
原理说明
- 先通过
sort_values按用户数降序排列数据,这一步你已经完成,但需要把排序后的AppCode列表传给category_orders参数。 category_orders会强制Plotly按照指定的顺序渲染x轴分类,不会因为color分组打乱整体排序,这样所有条形既能保持从大到小的统一顺序,又能保留按test_avant_2014分组的颜色区分。
内容的提问来源于stack exchange,提问作者Arthur7920
相关产品推荐
相关产品推荐

