Спецификация представления Vega-Lite

Спецификации Vega-Lite — объекты JSON, описывающие разнообразные интерактивные визуализации. Простейший вариант — спецификация одиночного представления, использующего один тип графических примитивов для отображения данных. Одиночное представление может быть самостоятельной визуализацией. Кроме того, Vega-Lite предоставляет операторы объединения нескольких представлений в слои или составные представления: layer, facet, concat и repeat.

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

Общие свойства спецификаций

Следующие свойства можно использовать в разных видах представлений:

Свойство Тип Описание
name string Имя визуализации для последующих ссылок на неё.
description string Описание примитива, служащее комментарием к спецификации.
title Text или TitleParams Заголовок диаграммы.
data Data или null Объект, описывающий источник данных. Значение null отменяет наследование данных родителя; если свойство отсутствует, используются данные родительского представления.
transform Transform[] Массив преобразований данных, например фильтрации и вычисления новых полей.
params TopLevelParameter[] Массив параметров: простых переменных или более сложных выделений, связывающих действия пользователя с запросами к данным.

Все спецификации объединения представлений (layer, facet, concat и repeat) также могут содержать свойство resolve, управляющее совместным использованием шкал, осей и легенд:

Свойство Тип Описание
resolve Resolve Правила совместного использования шкал, осей и легенд в составных представлениях.

Операторы размещения представлений (facet, concat и repeat) могут иметь следующие свойства размещения:

Свойство Тип Описание
align LayoutAlign или RowCol<LayoutAlign> Выравнивание строк и столбцов сетки: "all", "each" или "none". При "none" соседние представления располагаются последовательно одно за другим. При "each" они выравниваются по сетке, но размеры отдельных строк или столбцов могут различаться. При "all" представления выравниваются, а строки или столбцы получают одинаковый размер по наибольшему наблюдаемому размеру. Строка задаёт оба направления; объект {"row": string, "column": string} — каждое отдельно. По умолчанию: "all".
bounds string Способ расчёта границ панели. При "full" учитываются все вычисленные границы, включая оси, заголовок и легенду. При "flush" используются только заданные ширина и высота представления. Последний режим удобен для размещения диаграмм без осей и легенд в равномерной сетке. По умолчанию: "full".
center boolean или RowCol<boolean> Центрировать ли представления относительно их строк или столбцов. Объект {"row": boolean, "column": boolean} задаёт направления отдельно. По умолчанию: false.
spacing number или RowCol<number> Расстояние в пикселях между представлениями. Объект {"row": number, "column": number} задаёт разные интервалы между строками и столбцами. По умолчанию: свойство spacing конфигурации составных представлений, исходно 20.

Свойства верхнего уровня

Эти свойства относятся к визуализации целиком, будь то одиночная диаграмма или составное представление:

Свойство Тип Описание
$schema string URL схемы JSON для проверки спецификации и автодополнения в поддерживающих её редакторах. Если нет причины менять схему, используйте https://vega.github.io/schema/vega-lite/v6.json.
background Color или ExprRef Цвет CSS для фона всей визуализации. По умолчанию: "white".
padding Padding или ExprRef Отступ в пикселях от края холста до прямоугольной области данных. Число задаёт отступ со всех сторон; объект, например {"left": 5, "top": 5, "right": 5, "bottom": 5}, — каждую сторону отдельно. По умолчанию: 5.
autosize AutosizeType или AutoSizeParams Способ определения размера. Строковые режимы: "pad", "fit", "none"; объект дополнительно задаёт параметры расчёта по содержимому и автоматического изменения размера. По умолчанию: "pad".
config Config Объект конфигурации Vega-Lite. Допустим только на верхнем уровне спецификации.
usermeta Dict Необязательные пользовательские метаданные, передаваемые в Vega. Vega и Vega-Lite полностью игнорируют этот объект; его можно использовать для собственных метаданных.

Одиночное представление

Типичная спецификация одной диаграммы выглядит так. Многоточия обозначают места для значений:

{
  // Свойства верхнего уровня
  "$schema": "https://vega.github.io/schema/vega-lite/v6.json",
  "background": ...,
  "padding": ...,
  "autosize": ...,
  "config": ...,
  "usermeta": ...,

  // Свойства любого представления
  "title": ...,
  "name": ...,
  "description": ...,
  "data": ...,
  "transform": ...,

  // Свойства одиночной диаграммы
  "width": ...,
  "height": ...,
  "mark": ...,
  "encoding": {
    "x": {
      "field": ...,
      "type": ...,
      ...
    },
    "y": ...,
    "color": ...,
    ...
  }
}

Одиночное представление описывает тип графического примитива mark, например point или bar, и его encoding — соответствие между значениями данных и свойствами примитивов. Достаточно задать тип примитива и кодирование, чтобы Vega-Lite автоматически создал остальные компоненты: оси, легенды и шкалы. Если их свойства не заданы явно, Vega-Lite определяет их по набору тщательно разработанных правил. Такой подход делает спецификации краткими и выразительными, сохраняя возможность настройки.

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

Помимо общих свойств, одиночная диаграмма может содержать:

Свойство Тип Описание
mark AnyMark Тип примитива строкой, например "bar", "circle", "square", "tick", "line", "area", "point", "rule", "geoshape", "text", или объект его определения.
encoding FacetedEncoding Соответствие между каналами кодирования и определениями полей, заданное парами «ключ — значение».
width number, "container" или Step Ширина визуализации. Для непрерывного поля x задаётся числом. Для дискретного поля x или при его отсутствии можно задать фиксированную ширину числом либо ширину шага объектом {step: number}. Отсутствие поля x соответствует одному дискретному шагу. Значение "container" включает адаптивную ширину. По умолчанию: config.view.continuousWidth для непрерывного поля x, иначе config.view.discreteWidth. При использовании каналов row и column это ширина одного представления; "container" недопустимо.
height number, "container" или Step Высота визуализации. Для непрерывного поля y задаётся числом. Для дискретного поля y или при его отсутствии можно задать фиксированную высоту числом либо высоту шага объектом {step: number}. Отсутствие поля y соответствует одному дискретному шагу. Значение "container" включает адаптивную высоту. По умолчанию: config.view.continuousHeight для непрерывного поля y, иначе config.view.discreteHeight. При использовании каналов row и column это высота одного представления; "container" недопустимо.
view ViewBackground Объект заливки и обводки фона представления. По умолчанию: отсутствует, фон прозрачный.
projection Projection Объект свойств географической проекции. Она применяется к пути shape для примитивов "geoshape" и к каналам latitude и longitude для других примитивов.

Фон области построения

Свойство background на верхнем уровне окрашивает всю визуализацию. Свойство view задаёт фон только области построения одиночной диаграммы или слоя. Поэтому на одной странице они могут иметь разные цвета.

Свойство view Тип Описание
style string или string[] Имя или массив имён стилей фона. Стиль — именованный набор значений свойств примитивов по умолчанию из конфигурации стилей. В массиве более поздние стили переопределяют более ранние. По умолчанию: "cell". Явно заданные свойства фона дополняют стиль по умолчанию.
cornerRadius number или ExprRef Радиус скругления углов прямоугольников или дуг в пикселях. По умолчанию: 0.
cursor Cursor Вид указателя мыши над представлением. Допустим любой корректный тип указателя CSS.
fill Color, null или ExprRef Цвет заливки. По умолчанию: undefined.
fillOpacity number или ExprRef Непрозрачность заливки от 0 до 1. По умолчанию: 1.
opacity number или ExprRef Общая непрозрачность от 0 до 1. В исходной схеме значение по умолчанию описано как 0.7 для неагрегированных диаграмм с примитивами point, tick, circle, square или многослойных столбчатых диаграмм; в остальных случаях — 1.
stroke Color, null или ExprRef Цвет обводки. По умолчанию: "#ddd".
strokeCap StrokeCap или ExprRef Вид окончания линии: "butt", "round" или "square". По умолчанию: "butt".
strokeDash number[] или ExprRef Массив чередующихся длин штрихов и промежутков для штриховой или пунктирной линии.
strokeDashOffset number или ExprRef Смещение в пикселях, с которого начинается рисование последовательности штрихов.
strokeJoin StrokeJoin или ExprRef Способ соединения сегментов: "miter", "round" или "bevel". По умолчанию: "miter".
strokeMiterLimit number или ExprRef Предел острого соединения, при превышении которого угол срезается.
strokeOpacity number или ExprRef Непрозрачность обводки от 0 до 1. По умолчанию: 1.
strokeWidth number или ExprRef Толщина обводки в пикселях.

Пример: фон

В примере оранжевый цвет задан для всей визуализации, а жёлтый — для области построения:

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

Чтобы создавать многослойные и составные визуализации, обратитесь к следующим страницам:

Конфигурация представления

В объекте config.view задаются значения по умолчанию для области построения. Здесь можно настроить заливку и обводку из таблицы выше, кроме свойства style, а также исходные размеры:

Свойство config.view Тип Описание
continuousWidth number Ширина по умолчанию для непрерывного поля x или longitude, а также для примитивов arc. По умолчанию: 300.
continuousHeight number Высота по умолчанию для непрерывного поля y или latitude, а также для примитивов arc. По умолчанию: 300.
discreteWidth number или объект с step Ширина по умолчанию для примитивов, отличных от arc, при дискретном поле x или его отсутствии. Число задаёт фиксированную ширину, объект {step: number} — ширину дискретного шага. По умолчанию: размер шага на основе config.view.step.
discreteHeight number или объект с step Высота по умолчанию для примитивов, отличных от arc, при дискретном поле y или его отсутствии. Число задаёт фиксированную высоту, объект {step: number} — высоту дискретного шага. По умолчанию: размер шага на основе config.view.step.
step number Размер шага по умолчанию для дискретных полей x и y.
// Спецификация представления верхнего уровня
{
  ...,
  "config": { // Объект конфигурации

    "view": { // Конфигурация представления

      // Размер представления
      "continuousWidth": ...,
      "continuousHeight": ...,
      "discreteWidth": ...,
      "discreteHeight": ...,
      // Свойства фона представления
      "fill": ...,
      "stroke": ...,
      ...
    },
    ...
  }
}

В этом примере свойство step меняет размер шага для дискретного поля:

Подробнее о размерах представлений читайте в документации size.