Как отключить сюжетный экспресс от группировки полос по цвету?

У меня есть фреймворк pandas с 3 столбцами: имя, группа, значение. Я хотел сделать горизонтальную гистограмму с графическим отображением, которая сортируется от самого высокого до самого низкого значения и раскрашивает каждую полоску в зависимости от их значения в столбце группы. Проблема в том, что когда я добавляю аргумент цвета, полосы также сортируются по цветам. Можно ли сделать так, чтобы полосы не группировались по цвету?

Вот что я пробовал. Когда я запускаю код без указания атрибута цвета, полосы сортируются правильно. Код без цвета:

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()

Полосы сортируются по-другому:  Полосы сгруппированы по цвету

Есть ли способ предотвратить такое поведение группировки полосок? Я использую сюжетную версию 4.1.1 с python 3.7. Я хочу, чтобы полосы были отсортированы как первый блок кода, но окрашены столбцом группы.


person Asad Rauf    schedule 17.09.2019    source источник


Ответы (1)


Здесь вы можете указать желаемый порядок явно в category_orders, например. category_orders=dict(group=["Tokyo", "Delhi", ...]) или, если вам нужно просто упорядочить их по значению, вы можете использовать динамический порядок категорий по оси Y с помощью fig.update_layout(yaxis_categoryorder = 'total ascending')

person nicolaskruchten    schedule 19.09.2019