Повторение представления

Оператор repeat создаёт по представлению для каждого поля из заданного списка. Он входит в средства композиции Vega-Lite. Результат похож на панельную диаграмму, но здесь каждое представление может получать весь набор данных, а не только одну его часть.

Содержание страницы

Оператор repeat

В repeat укажите повторяемые поля, а в spec — шаблон диаграммы. Внутри шаблона ссылка {"repeat": ...} подставляет соответствующее поле:

{
  "repeat": {
    ... // Поля повторения
  },
  "spec": ... // Шаблон представления
}

Помимо общих свойств спецификации представления, спецификация повторения имеет следующие свойства:

Свойство Тип Описание
repeat string[], RepeatMapping, LayerRepeatMapping Обязательное. Определение повторяемых полей. 1) Массив полей: ссылка {"repeat": "repeat"} обращается к текущему полю. Повторяемые представления размещаются в ряд с переносом; число столбцов задаёт перенос. 2) Объект, сопоставляющий "row" и/или "column" спискам полей для повторения в соответствующем направлении. Ссылки {"repeat": "row"} и {"repeat": "column"} обращаются к соответствующим повторяемым полям. Для повторения по слоям используется объект с layer, описанный ниже.
spec NonNormalizedSpec, LayerSpec, UnitSpecWithFrame Обязательное. Спецификация повторяемого представления. При повторении по слоям допускается LayerSpec или UnitSpecWithFrame; в остальных случаях — NonNormalizedSpec.
columns number Число столбцов в компоновке составного представления. По умолчанию: undefined — число столбцов не ограничено, все представления располагаются в один ряд. Для concat это эквивалентно hconcat, а для facet и repeat — использованию канала column. Примечания: 1) Свойство применяется только к оператору concat с переносом строк (не к hconcat/vconcat) и к операторам facet и repeat с одним определением поля или повторения, без вложенных определений row/column. 2) Значение columns: 1 эквивалентно vconcat для concat и использованию канала row для facet и repeat.

Повторение по строкам, столбцам и слоям

Свойство repeat может быть объектом, содержащим хотя бы одно из свойств "row", "column" и "layer". Они задают списки полей для повторения по строкам, столбцам или слоям.

При повторении по слоям представления накладываются друг на друга. Даже если слоям назначены разные цвета, Vega-Lite не создаёт легенду и не укладывает такие примитивы, как столбцы или области. Если нужны легенда или укладка разных полей, используйте преобразование fold, чтобы перевести данные в длинную форму, а затем задайте кодирование цветом.

Свойство Тип Описание
row string[] Массив полей для повторения по вертикали.
column string[] Массив полей для повторения по горизонтали.

Примеры

Повторённые линейные диаграммы

Один шаблон показывает изменения нескольких переменных:

Поле канала Y ссылается на текущий элемент массива повторения:

"y": {
  "field": {"repeat": "repeat"},
  ...
},

Линейный график с повторёнными слоями

repeat с layer создаёт несколько линий в одном представлении. Здесь повторяемое поле также используется как постоянное значение данных для цвета:

Гистограммы с переносом строк

Матрица диаграмм рассеяния

Оператор repeat позволяет создать матрицу диаграмм рассеяния (SPLOM), в которой каждая ячейка показывает отдельную двумерную проекцию одной таблицы данных. Здесь заданы оба свойства — row и column.

См. также пример интерактивной SPLOM.

Общие и независимые шкалы

По умолчанию правила объединения для повторения предусматривают независимые шкалы и оси позиционных каналов и общие шкалы и легенды остальных каналов. В настоящее время Vega-Lite не поддерживает общие оси повторяемых представлений.

Настройка повторения

Поскольку repeat — сокращённая запись объединения, для повторяемых представлений также используется конфигурация concat.

// Спецификация представления верхнего уровня
{
  ...,
  "config": { // Объект конфигурации

    "concat": { // Конфигурация объединения
      "spacing": ...,
      "columns": ...,
    },
    ...
  }
}

Конфигурация повторения поддерживает следующие свойства:

Свойство Тип Описание
columns number Число столбцов в компоновке составного представления. По умолчанию: undefined — число столбцов не ограничено, все представления располагаются в один ряд. Для concat это эквивалентно hconcat, а для facet и repeat — использованию канала column. Примечания: 1) Свойство применяется только к оператору concat с переносом строк (не к hconcat/vconcat) и к операторам facet и repeat с одним определением поля или повторения, без вложенных определений row/column. 2) Значение columns: 1 эквивалентно vconcat для concat и использованию канала row для facet и repeat.
spacing number Расстояние по умолчанию между составными представлениями, в пикселях. По умолчанию: 20.