如何从基于颜色的分组条中禁用 plotly express?

How to disable plotly express from grouping bars based on color?

我有一个包含 3 列的 pandas 数据框:名称、组、值。我想制作一个水平条形图,其中 plotly 从最高值到最低值排序,并根据它们在组列中的值为每个条形图着色。问题是当我添加颜色参数时,条形图也会按颜色排序。是否可以使条形图不按颜色组合在一起?

这是我试过的。当我 运行 没有指定颜色属性的代码时,条形图被正确排序。没有颜色的代码:

import plotly.express as px
px.bar(df, x='value', y='name', orientation='h')
fig.show()

输出符合预期:

但是,当我添加颜色属性时,条形会按颜色排序:

fig = px.bar(data, x='value', y='name', orientation='h', color='group')
fig.show()

条形得到不同的排序:

有没有办法阻止这种条形图分组行为?我正在使用带有 python 3.7 的 plotly 版本 4.1.1。我希望条形图像第一个代码块一样排序,但按组列着色。

您的选择是在 category_orders 中明确提供所需的顺序,例如category_orders=dict(group=["Tokyo", "Delhi", ...]) 或者如果您只是简单地按值对它们进行排序,您可以使用 fig.update_layout(yaxis_categoryorder = 'total ascending')

将 Y 轴类别顺序设置为动态