我有一个包含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()条形图采用不同的排序方式:

有没有办法防止这种条形图分组的行为?我使用的是plotly 4.1.1版本和python 3.7。我希望条形图像第一个代码块一样排序,但按组列着色。
发布于 2019-09-19 10:31:00
您可以选择在category_orders中显式提供所需的排序(例如category_orders=dict(group=["Tokyo", "Delhi", ...]) ),或者如果您想要的只是按值排序,则可以使用fig.update_layout(yaxis_categoryorder = 'total ascending')将Y轴类别顺序设置为动态
https://stackoverflow.com/questions/57981337
复制相似问题