首页 > 解决方案 > 如果我添加颜色,则 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')订单就会混乱!

如果我添加颜色/色调,数据点的顺序不正确

知道如何解决这个问题吗?

标签: pythonpandasplotly

解决方案


您可以使用参数“category_order”,并在要指定顺序的维度中传递字典:例如在这种情况下添加参数category_orders={'m4':d}


推荐阅读