python - 如果我添加颜色,则 plotly express 重新排序分类 x 轴散点图
问题描述
想象一下,我有一组观察结果,按行排列。每个观察都有与之相关的定量和有序测量。
观察结果是基于定量测量进行排序的(即顺序很重要),但由于在该维度中顺序与大小无关,我想使用分类 x 轴散点图而不是数值 x 轴散点图。
只要我不向 plotly express scatter 添加“颜色”,这一切都可以正常工作:
import pandas as pd
import plotly.express as px
metrics = ['m1', 'm2', 'm3', 'm4']
a = ['a', 'b', 'd', 'b']
b = [1,2,3,4]
c = [4,5,6,7]
d = ['w','x','y','z']
data = pd.DataFrame(data=[a,b,c,d], index=metrics).T
上面的代码将生成一个绘图图表,其中观察按在数据框中找到的顺序绘制:
px.scatter(data, y='m2', x='m4')
.
但是,如果我添加颜色 via px.scatter(data, y='m2', x='m4', color='m1')
,订单就会混乱!
知道如何解决这个问题吗?
解决方案
您可以使用参数“category_order”,并在要指定顺序的维度中传递字典:例如在这种情况下添加参数category_orders={'m4':d}
推荐阅读
- python - 如何在 Whoosh 查询中包含撇号 (')?
- c# - 循环遍历具有可观察属性的 Knockout 可观察对象数组
- c++ - 如何访问在 if 语句中创建的指针,在它之外?
- python - Python 2.7 Selenium 网站上没有这样的元素
- apache-spark - Spark Scala - 拆分字符串语法问题
- javascript - 是否可以在通过 javascript 修改的对象上添加事件监听器?
- php - Sylius 管理员控制器如何限制为管理员用户
- ios - 如何向另一个类中的 UIButton 添加操作
- c# - 查找三位数回文的问题
- node.js - 托管一个 Httpie 服务器