Мне нужно иметь возможность сортировать гистограмму с накоплением на основе числовых значений y в каждом стеке.Похоже, что в R-версии Plotly есть решение, которое решает эту проблему, но я еще не нашел его для Python или, более конкретно, Plotly Dash.
Вот два примера того, как эта проблема сортировки может быть решена в R:
1) Сложенные гистограммы на графике: как управлять порядком баров в каждом стеке
2) Упорядоченные столбцы на графике
Вот базовый код для гистограммы с плотно уложенным графиком:
import plotly.plotly as py
import plotly.graph_objs as go
trace1 = go.Bar(
x=['giraffes', 'orangutans', 'monkeys'],
y=[20, 14, 23],
name='SF Zoo'
)
trace2 = go.Bar(
x=['giraffes', 'orangutans', 'monkeys'],
y=[12, 18, 29],
name='LA Zoo'
)
data = [trace1, trace2]
layout = go.Layout(
barmode='stack',
)
fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename='stacked-bar')
Вот фактический результат:
https://i.imgur.com/32ZLw6P.png
Сортировка этих столбцов по оси x (категориальная) очень проста.Единственный код, необходимый для сортировки x в алфавитном порядке:
layout = go.Layout(
barmode='stack',
xaxis={'categoryorder': 'category ascending'}
)
Но можно ли также сортировать каждый стек по числовым значениям y с помощью Plotly Dash (Python)?Вот каков ожидаемый результат, если бы каждый столбец с накоплением был отсортирован так, что наименьшее значение y в пределах каждого столбца с накоплением находится внизу столбца (независимо от трассы):
https://i.imgur.com/7V3CQFQ.png
Сейчас кажется, что можно сортировать только категории.