首页 > 解决方案 > 有条不紊地安排图例

问题描述

我想为我使用 plotly 构建的饼图安排图例,默认情况下,它首先排列具有最高分布的图例,然后是较低分布的图例,但我希望它们按照项目要求按特定顺序排列。根据图像,我希望 80+ 在顶部,然后 61-80 然后 41-60,然后 21-40 然后 11-20 然后低于 21 是最后一个。谁能帮我这个。在此处输入图像描述

标签: pythonplotlylegendpie-chartplotly-python

解决方案


  • 下面显示了无序和有序
  • 订购,排序用于生成饼图的数据框和sort=False
import pandas as pd
import numpy as np
import plotly.express as px

cats = ["80+", "61-80", "41-60", "21-40", "11-20", "below 21"]

df = pd.DataFrame(
    {"cat": np.random.choice(cats, 100), "refer": np.random.randint(1, 50, 100)}
)

px.pie(
    df,
    values="refer",
    names="cat",
).show()

px.pie(
    df.sort_values(by="cat", key=lambda s: s.map({k: i for i, k in enumerate(cats)})),
    values="refer",
    names="cat",
).update_traces(sort=False).show()

在此处输入图像描述


推荐阅读