Укладка данных
Укладка (stack) размещает значения разных групп одно поверх другого. В Vega-Lite её можно настроить свойством stack в определении поля канала или преобразованием stack в массиве transform.
Содержание страницы
Укладка в канале кодирования
// Спецификация одиночного представления или слоя
{
...,
"mark/layer": ...,
"encoding": { // Кодирование
"x" or "y": {
"field": ...,
"type": "quantitative",
"stack": ..., // Укладка
...
},
...
},
...
}
Свойство stack в определении поля положения задаёт тип смещения, если поле нужно укладывать.
| Свойство | Тип | Описание |
|---|---|---|
stack |
StackOffset, boolean или null | Тип смещения при укладке. Применяется только к каналам x, y, theta и radius с непрерывными входными областями. Например, stack канала y настраивает укладку вертикальной столбчатой диаграммы."zero" или true — укладка от нулевого значения шкалы для обычных столбцов и областей."normalize" — нормированная область для процентных столбчатых диаграмм и областей, а также круговых диаграмм с процентами в подсказке."center" — укладка с центральной базовой линией для потоковой диаграммы.null или false — укладка отключена; создаются наложенные столбцы и области.По умолчанию: "zero", если одновременно выполнены три условия: примитив — bar, area или arc; канал укладываемого показателя X или Y использует линейную шкалу; хотя бы один канал, не задающий положение, связан с неагрегированным полем, отличным от X и Y. В остальных случаях — null. |
Столбчатая диаграмма с укладкой
Если добавить поле цвета к столбчатой диаграмме, Vega-Lite по умолчанию создаёт укладку:
Диаграмма областей с укладкой
То же происходит с областями, различаемыми по цвету:
Нормированная укладка
stack: "normalize" показывает долю каждой группы в общей сумме столбца или области:
Потоковая диаграмма
stack: "center" располагает области вокруг общей середины:
Наложенные столбцы
При stack: null столбцы накладываются. Полупрозрачность opacity: 0.6 позволяет различить слои:
Расходящаяся укладка с отрицательными значениями
Укладка также работает с отрицательными значениями и размещает их по другую сторону от нуля:
Если в середине расходящейся диаграммы должна располагаться отдельная нейтральная группа, обычной укладки недостаточно; см. расходящуюся столбчатую диаграмму с нейтральными частями.
Порядок групп в укладке
Канал order меняет порядок расположения цветовых групп. Исходный пример для набора данных о ячмене:
По умолчанию порядок определяется полями группировки, здесь — полем цвета. Если в order передать сумму урожайности, группы будут упорядочены по этому показателю:
Группы с более высокой урожайностью оказываются выше в стопке, то есть правее на горизонтальной диаграмме.
Для собственного порядка можно создать поле преобразованием calculate и сортировать по нему. Здесь «University Farm» и «Grand Rapids» получают первый (0) и второй порядковые номера:
Примечание оригинала: планируется более удобный синтаксис задания собственного порядка сортировки.
Линии поверх нормированных областей
Линейные примитивы по умолчанию не укладываются. Чтобы совместить их с диаграммой областей, настройте для линий такое же смещение stack вручную:
Преобразование stack
// Любая спецификация представления
{
...,
"transform": [
// Преобразование укладки
{
"stack": ...,
"groupby": ...,
"offset": ...,
"sort": ...,
"as": ...
},
...
],
...
}
Здесь та же нормированная столбчатая диаграмма поля "population", сгруппированная по "age" и окрашенная по "gender", построена через свойство stack в массиве transform:
| Свойство преобразования | Тип | Описание |
|---|---|---|
stack |
FieldName | Обязательное поле, значения которого укладываются. |
groupby |
FieldName[] | Обязательные поля данных для группировки. |
offset |
string | Режим укладки: "zero" начинает её от 0; "center" центрирует стопки; "normalize" вычисляет доли с выходными значениями в диапазоне [0,1]. По умолчанию: "zero". |
sort |
SortField[] | Поля, определяющие порядок сегментов в диаграмме с укладкой. |
as |
FieldName или FieldName[] | Обязательные имена выходных полей. Строка или массив из двух строк задаёт имена полей начала и конца соответственно. При одной строке, например "val", поле конца называется "val_end". |
Сочетая укладку с другими преобразованиями, можно создавать более сложные диаграммы.
Расходящаяся столбчатая диаграмма
Сначала значения укладываются по question, затем преобразование window сдвигает каждую стопку:
Мозаичная диаграмма
Укладка применяется дважды — по каждой оси — вместе с оконным преобразованием:
Чтобы добавить подписи к этой диаграмме, см. пример мозаичной диаграммы с подписями.