如何从基于颜色的分组条中禁用 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 轴类别顺序设置为动态
我有一个包含 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')