Спецификация представления 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.