我有一个3栏的pandas数据框:名称,组,值。我想制作一个水平绘制的条形图,从最高值到最低值进行排序,并根据组列中的值对每个条形进行着色。问题是,当我添加color参数时,条也按颜色进行排序。是否可以使这些条不按颜色分组在一起?
这是我尝试过的。当我在不指定color属性的情况下运行代码时,条形正确排序。没有颜色的代码:
import plotly.express as px
px.bar(df, x='value', y='name', orientation='h')
fig.show()
输出与预期的一样:
但是,当我添加color属性时,条形按颜色排序:
fig = px.bar(data, x='value', y='name', orientation='h', color='group')
fig.show()
是否有一种方法可以防止这种条形分组行为?我正在使用python 3.7的plotly版本4.1.1。我希望条的排列方式像第一个代码块一样,但按组列进行着色。
答案 0 :(得分:1)
您在这里的选择将是在category_orders
中明确提供所需的顺序,例如category_orders=dict(group=["Tokyo", "Delhi", ...])
,或者如果您只是想按值对它们进行排序,则可以使用fig.update_layout(yaxis_categoryorder = 'total ascending')