Укладка данных

Укладка (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 сдвигает каждую стопку:

Мозаичная диаграмма

Укладка применяется дважды — по каждой оси — вместе с оконным преобразованием:

Чтобы добавить подписи к этой диаграмме, см. пример мозаичной диаграммы с подписями.