Накопление — Stack
Преобразование stack вычисляет значения для кодирований с накоплением. Рассмотрим эту столбчатую диаграмму:
import altair as alt
from altair.datasets import data
source = data.barley()
alt.Chart(source).mark_bar().encode(
column='year:O',
x='yield:Q',
y='variety:N',
color='site:N'
).properties(width=220)
Здесь данные неявно группируются и складываются. Если нужно напрямую получить вычисленные значения накопления, ту же диаграмму можно построить вручную с помощью stack:
import altair as alt
from altair.datasets import data
source = data.barley()
alt.Chart(source).transform_stack(
stack='yield',
as_=['yield_1', 'yield_2'],
groupby=['year', 'variety'],
sort=[alt.SortField('site', 'descending')]
).mark_bar().encode(
column='year:O',
x=alt.X('yield_1:Q').title('yield'),
x2='yield_2:Q',
y='variety:N',
color='site:N',
tooltip=['site', 'yield', 'variety']
).properties(width=220)
Теперь столбцы явно рисуются между вычисленными значениями, указанными в каналах кодирования x и x2.
Параметры преобразования
Метод Chart.transform_stack основан на классе StackTransform, который поддерживает следующие параметры:
Нажмите, чтобы показать таблицу
| Свойство | Тип | Описание |
|---|---|---|
as | anyOf(FieldName, array(FieldName)) | Имена выходных полей: строка или массив из двух строк для начала и конца накопления соответственно. При одной строке, например |
groupby | array(FieldName) | Поля данных для группировки. |
offset | ['zero', 'center', 'normalize'] | Режим накопления примитивов: |
sort | array(SortField) | Поле, определяющее порядок элементов диаграммы с накоплением. |
stack | FieldName | Поле, значения которого складываются. |