如何调整Plotly绘制的饼图图例为指定的自定义排序顺序
Plotly饼图自定义图例顺序解决方案
核心实现逻辑
Plotly饼图默认会按数值从高到低排序后渲染图例,关闭默认排序规则、将类别按你需要的顺序传入即可实现自定义图例排序,具体操作步骤如下:
- 先定义你的目标自定义顺序列表:
custom_order = ["80+", "61-80", "41-60", "21-40", "11-20", "below 21"] - 整理数据时按照上述自定义顺序重排类别和对应数值,保证传入的类别序列和你需要的图例顺序完全一致
- 绘制饼图时添加
sort=False参数,关闭Plotly默认的数值排序逻辑
完整代码示例
# 以plotly.express为例 import plotly.express as px import pandas as pd # 示例数据,你可以替换成自己的真实数据 raw_data = pd.DataFrame({ "category": ["below 21", "11-20", "21-40", "41-60", "61-80", "80+"], "count": [12, 18, 22, 27, 14, 7] }) # 定义目标顺序 custom_order = ["80+", "61-80", "41-60", "21-40", "11-20", "below 21"] # 按目标顺序重排数据集 sorted_data = raw_data.set_index("category").reindex(custom_order).reset_index() # 绘制饼图,指定类别顺序 fig = px.pie(sorted_data, values="count", names="category", category_orders={"category": custom_order}) # 如果使用plotly.graph_objects,写法如下 # import plotly.graph_objects as go # fig = go.Figure(data=[go.Pie( # labels=sorted_data["category"], # values=sorted_data["count"], # sort=False # 关键参数,关闭默认排序 # )]) fig.show()
参考效果

内容的提问来源于stack exchange,提问作者Abhishek Mishra
相关产品推荐
相关产品推荐

