如何禁用基于颜色的分组条形图表达?

时间:2019-09-17 20:04:24

标签: python plotly-python

我有一个3栏的pandas数据框:名称,组,值。我想制作一个水平绘制的条形图,从最高值到最低值进行排序,并根据组列中的值对每个条形进行着色。问题是,当我添加color参数时,条也按颜色进行排序。是否可以使这些条不按颜色分组在一起?

这是我尝试过的。当我在不指定color属性的情况下运行代码时,条形正确排序。没有颜色的代码:

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

输出与预期的一样:

Bars are sorted in descending order

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

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

条形图有不同的排序方式: The bars are grouped by colors

是否有一种方法可以防止这种条形分组行为?我正在使用python 3.7的plotly版本4.1.1。我希望条的排列方式像第一个代码块一样,但按组列进行着色。

1 个答案:

答案 0 :(得分:1)

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

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