Изменение порядка сегментов накопленных столбцов
Преобразование calculate сравнивает значения столбца site со значениями, выбранными щелчком по легенде. При совпадении назначается меньший порядок, 0. Функция indexOf проверяет совпадение в массиве, поэтому щелчками с зажатой Shift можно переставлять несколько сегментов.
import altair as alt
from altair.datasets import data
selection = alt.selection_point(fields=['site'], bind='legend')
source = data.barley.url
alt.Chart(source).mark_bar().transform_calculate(
site_order=f"if({selection.name}.site && indexof({selection.name}.site, datum.site) !== -1, 0, 1)"
).encode(
x='sum(yield):Q',
y='variety:N',
color='site:N',
order='site_order:N',
opacity=alt.when(selection).then(alt.value(0.9)).otherwise(alt.value(0.2))
).add_params(
selection
)
import altair as alt
from altair.datasets import data
selection = alt.selection_point(fields=['site'], bind='legend')
source = data.barley.url
alt.Chart(source).mark_bar().transform_calculate(
site_order=f"if({selection.name}.site && indexof({selection.name}.site, datum.site) !== -1, 0, 1)"
).encode(
x='sum(yield):Q',
y='variety:N',
color='site:N',
order='site_order:N',
opacity=alt.when(selection).then(alt.value(0.9)).otherwise(alt.value(0.2))
).add_params(
selection
)
Подробнее в связанных разделах документации: