python - 有条不紊地安排图例
问题描述
我想为我使用 plotly 构建的饼图安排图例,默认情况下,它首先排列具有最高分布的图例,然后是较低分布的图例,但我希望它们按照项目要求按特定顺序排列。根据图像,我希望 80+ 在顶部,然后 61-80 然后 41-60,然后 21-40 然后 11-20 然后低于 21 是最后一个。谁能帮我这个。
解决方案
- 下面显示了无序和有序
- 订购,排序用于生成饼图的数据框和
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()
推荐阅读
- laravel - laravel 7 是否有一种获取所有列列表的方法?
- firebase - StreamBuilder 在快照中不返回任何内容
- python - 如何索引张量并更改值
- curl - 即使服务器返回 500,也打印 HTTP 响应正文
- scala - 列表的Scala匹配模式
- python - 如何确定一个元组是否是另一个元组的切片(不仅仅是一个子集!)
- angular - 强制子调用父方法
- javascript - 升级到 Angular 10 - 修复 CommonJS 或 AMD 依赖项可能导致优化救助
- android-studio - 如何在 Just A Line AR App 中渲染对象?
- c# - ClickOnce 将未引用的 dll 复制到基目录