Каналы кодирования
Неотъемлемая часть визуализации данных — кодирование данных визуальными свойствами графических примитивов. Свойство encoding спецификации одиночного представления задаёт соответствие между каналами кодирования, например x, y или color, и полями данных, постоянными визуальными значениями либо постоянными значениями данных (datum).
// Спецификация одиночного представления
{
"data": ... ,
"mark": ... ,
"encoding": { // Кодирование
// Каналы положения
"x": ...,
"y": ...,
"x2": ...,
"y2": ...,
"xError": ...,
"yError": ...,
"xError2": ...,
"yError2": ...,
// Каналы полярных координат
"theta": ...,
"radius": ...,
"theta2": ...,
"radius2": ...,
// Каналы географических координат
"longitude": ...,
"latitude": ...,
"longitude2": ...,
"latitude2": ...,
// Каналы свойств примитивов
"color": ...,
"opacity": ...,
"fillOpacity": ...,
"strokeOpacity": ...,
"strokeWidth": ...,
"strokeDash": ...,
"size": ...,
"angle": ...,
"shape": ...,
// Каналы текста и подсказки
"text": ...,
"tooltip": ...,
// Канал гиперссылки
"href": ...,
// Канал описания
"description": ...,
// Канал дополнительной детализации
"detail": ...,
// Канал ключа записи
"key": ...,
// Канал порядка
"order": ...,
// Каналы панелей
"facet": ...,
"row": ...,
"column": ...
},
...
}
Каналы кодирования
Ключи объекта encoding — это каналы кодирования. Vega-Lite поддерживает следующие группы:
- Положение:
x,y,x2,y2,xError,yError,xError2,yError2. - Смещение положения:
xOffset,yOffset. - Полярные координаты:
theta,theta2,radius,radius2. - Географические координаты:
longitude,latitude,longitude2,latitude2. - Свойства примитива:
angle,color(а такжеfill/stroke),opacity,fillOpacity,strokeOpacity,shape,size,strokeDash,strokeWidth. - Текст и всплывающая подсказка:
text,tooltip. - Гиперссылка:
href. - Описание:
description. - Дополнительная детализация:
detail. - Ключ записи:
key. - Порядок:
order. - Панели:
facet,row,column.
Определение канала
Объект определения каждого канала должен быть одним из следующих:
- Определение поля описывает поле данных, кодируемое каналом.
- Определение значения описывает кодируемое постоянное визуальное значение.
- Определение datum описывает постоянное значение данных, кодируемое через шкалу.
Определение поля
// Спецификация одиночного представления
{
...,
"encoding": { // Кодирование
...: {
"field": ...,
"type": ...,
...
},
...
},
...
}
Чтобы закодировать определённое поле набора данных, определение поля канала должно описывать его имя field и тип type. Для удобства исследования данных Vega-Lite, помимо преобразований transform верхнего уровня, поддерживает преобразования непосредственно в определении поля: aggregate, bin, sort, stack и timeUnit.
Все определения полей поддерживают следующие свойства:
| Свойство | Тип | Описание |
|---|---|---|
field |
Field | Обязательное свойство. Строка с именем поля, из которого берётся значение данных, или объект, задающий перебираемые значения оператора repeat. См. документацию field. Точки и скобки позволяют обращаться к вложенным объектам: "field": "foo.bar" или "field": "foo['bar']". Если точки или скобки входят в само имя, экранируйте их обратной косой чертой; в JSON она записывается как \\, например "a\\.b" и "a\\[0\\]". Подробности — в документации field. Свойство field не обязательно, если aggregate равно "count". |
type |
StandardType | Тип измерения кодируемого поля или постоянного значения datum: "quantitative", "temporal", "ordinal", "nominal". Тип "geojson" используется для географических фигур.Vega-Lite во многих случаях определяет тип автоматически. Однако для поля type обязателен, если: (1) поле не номинальное, а в кодировании не заданы aggregate (кроме argmin и argmax), bin, тип шкалы, собственный порядок sort или timeUnit; либо (2) для поля с bin или timeUnit нужна порядковая шкала.Тип поля по умолчанию: "nominal", кроме следующих случаев."quantitative" — если заданы bin или агрегирование, кроме argmin/argmax; канал — latitude или longitude; либо указан количественный тип шкалы."temporal" — если задан timeUnit либо шкала time или utc."ordinal" — если задан собственный порядок сортировки, шкала ordinal, point или band, либо канал order.Тип постоянного значения datum по умолчанию: "quantitative" для числа, "nominal" для строки, "temporal" для объекта даты и времени.Примечания: Тип описывает смысл данных, а не простой тип значения (число, строка и т. п.): числа могут быть количественными, порядковыми или номинальными. Временное поле может содержать строку даты или времени — например, "2015-03-07 12:32:17", "17:01", "2015-03-16", "2015" — либо числовую временную метку, например 1552199579097.С bin тип может быть "quantitative" для линейной интервальной шкалы или порядковым.С timeUnit тип может быть "temporal" (по умолчанию, для временной шкалы) или порядковым.При агрегировании тип относится к результату операции. Например, число различных категорий {"aggregate": "distinct", "field": "cat"} имеет тип "quantitative".Вторичные каналы — например, x2, y2, xError, yError — не имеют type: он должен совпадать с типом основного канала X или Y. |
bin |
boolean, BinParams, "binned", null | Флаг разбиения количественного поля на интервалы, объект параметров разбиения или "binned", если данные канала x или y были разбиты до импорта в Vega-Lite.true применяет параметры разбиения по умолчанию."binned" обозначает уже разбитые данные: поле начала интервала сопоставляется x (или y), а конца — x2 (или y2). Шкала и ось форматируются аналогично разбиению в Vega-Lite. Чтобы согласовать деления оси с шагом интервалов, задайте tickMinStep.По умолчанию: false. См. bin. |
timeUnit |
TimeUnit, BinnedTimeUnit, TimeUnitParams | Единица времени, например year, yearmonth, month или hours, для временного поля либо временного поля, приведённого к порядковому типу.По умолчанию: не задано ( undefined). См. timeUnit. |
aggregate |
Aggregate | Функция агрегирования поля, например "mean", "sum", "median", "min", "max" или "count".По умолчанию: не задано ( undefined). См. aggregate. |
bandPosition |
number | Относительное положение внутри полосы укладки, разбиения на интервалы, единицы времени или полосовой шкалы. При 0 примитив располагается в начале полосы, при 0.5 — в середине. Допустимый диапазон: от 0 до 1. |
title |
Text, null | Название поля. null убирает название.По умолчанию: формируется из имени поля и преобразований aggregate, bin и timeUnit. Функция агрегирования включается в название, например "Sum of Profit"; разбиение и единица времени указываются в скобках, например "Profit (binned)" или "Transaction Date (year-month)". Без преобразований используется имя поля.Формат названия можно изменить свойством fieldTitle в config или функцией fieldTitle в параметрах compile. Если задано и название поля, и title оси, заголовка панели или легенды, используется название оси, заголовка или легенды. |
tooltip |
boolean | Управляет включением поля в подсказки и описания ARIA, создаваемые на основе кодирования, например при tooltip: true в определении примитива.По умолчанию: true. См. tooltip. |
Примечание о версии: в исходной странице указано устаревшее имя band. В закреплённой схеме и используемой версии Vega-Lite это свойство называется bandPosition; см. положение внутри полосы.
Кроме того, определения полей разных каналов могут поддерживать:
- scale — функцию, преобразующую значения области данных (числа, даты, строки и т. п.) в визуальные значения (пиксели, цвета, размеры) для каналов положения и свойств примитива.
- axis — ось, помогающую интерпретировать шкалу положения.
- legend — легенду, помогающую интерпретировать каналы свойств примитива.
- format — шаблон форматирования значений текстовых каналов.
- stack — тип смещения при укладке поля положения с непрерывной областью.
- sort — порядок сортировки поля для каналов положения и свойств примитива.
- condition — правило условного кодирования для каналов свойств примитива и текста.
Перечни дополнительных свойств приведены в разделах каналов положения, свойств примитива, текста и подсказки, детализации, порядка и панелей.
Определение постоянного визуального значения
// Спецификация одиночного представления
{
...,
"encoding": { // Кодирование
...: {
"value": ...
},
...
},
...
}
Чтобы сопоставить каналу постоянное визуальное значение, укажите свойство value в определении значения. Дополнительные примеры приведены на странице value.
Определение постоянного значения данных
// Спецификация одиночного представления
{
...,
"encoding": { // Кодирование
...: {
"datum": ...
},
...
},
...
}
Чтобы сопоставить каналу постоянное значение данных (datum) через шкалу, укажите свойство datum в определении канала. Дополнительные примеры приведены на странице datum.
| Свойство | Тип | Описание |
|---|---|---|
datum |
PrimitiveValue, DateTime, ExprRef, RepeatRef | Постоянное значение в области данных. |
Подобно определению поля, определение datum в разных каналах может поддерживать свойства bandPosition (ранее band), scale, axis, legend, format или condition. Однако преобразования данных aggregate, bin, timeUnit и sort к определению datum не применяются.
Каналы положения
Каналы x и y определяют положение примитивов либо ширину и высоту горизонтальных и вертикальных area и bar. Каналы x2 и y2 могут задавать вторую границу области, столбца, прямоугольника и отрезка.
По умолчанию Vega-Lite автоматически создаёт шкалу и ось для каждого поля в канале положения. Если свойства не заданы, компилятор определяет их по набору правил. Свойства scale и axis определения поля позволяют изменить эти настройки.
| Свойство | Тип | Описание |
|---|---|---|
x |
PositionDef | Координата X примитива либо ширина горизонтального bar или area, если не заданы x2 или width.value может быть числом или строкой "width", обозначающей ширину диаграммы. |
y |
PositionDef | Координата Y примитива либо высота вертикального bar или area, если не заданы y2 или height.value может быть числом или строкой "height", обозначающей высоту диаграммы. |
x2 |
Position2Def | Вторая координата X для area, bar, rect и rule, задающих диапазон.value может быть числом или строкой "width", обозначающей ширину диаграммы. |
y2 |
Position2Def | Вторая координата Y для area, bar, rect и rule, задающих диапазон.value может быть числом или строкой "height", обозначающей высоту диаграммы. |
Определение поля и datum для положения
Помимо общих свойств определения поля, определения полей каналов x и y могут включать свойства, перечисленные ниже. Определения datum для x и y также поддерживают эти свойства.
| Свойство | Тип | Описание |
|---|---|---|
scale |
Scale, null | Объект свойств шкалы канала — функции, преобразующей значения области данных (числа, даты, строки и т. п.) в визуальные значения (пиксели, цвета, размеры).null отключает шкалу и кодирует значение данных непосредственно.По умолчанию: применяются стандартные свойства шкалы. См. scale. |
axis |
Axis, null | Объект свойств линий сетки, делений и подписей оси. null удаляет ось канала.По умолчанию: применяются стандартные свойства оси. См. axis. |
sort |
Sort | Порядок сортировки кодируемого поля. Для непрерывных полей (количественных или временных): "ascending" или "descending".Для дискретных полей: • "ascending" или "descending" — естественный порядок значений в JavaScript.• Имя канала кодирования, например "x" или "y", с необязательным минусом для убывания. "sort": "-x" эквивалентно "sort": {"encoding": "x", "order": "descending"}.• Определение поля сортировки — сортировка по другому полю. • Массив значений в желаемом порядке. Неуказанные значения следуют после перечисленных в исходном порядке. Для дискретного временного поля можно использовать объекты даты и времени; для "month" и "day" — английские названия месяцев и дней без учёта регистра или трёхбуквенные сокращения, например "Mon", "Tue".• null — без сортировки.По умолчанию: "ascending".Примечание: null и сортировка по другому каналу не поддерживаются для row и column. См. sort. |
impute |
ImputeParams, null | Объект параметров восстановления пропущенных значений. Значение поля другого канала положения используется как key операции Impute. Поле канала color, если задано, используется как groupby.См. impute. |
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. |
Примечание: у x2 и y2 нет собственных определений scale, axis, sort и stack, поскольку они используют шкалы и оси x и y соответственно.
Каналы смещения положения
Каналы xOffset и yOffset задают дополнительное смещение относительно положения x или y.
Определение поля и datum для смещения положения
Помимо общих свойств определения поля, определения полей каналов xOffset и yOffset могут включать свойства, перечисленные ниже. Определения datum для этих каналов также поддерживают их.
| Свойство | Тип | Описание |
|---|---|---|
scale |
Scale, null | Объект свойств шкалы канала — функции, преобразующей значения области данных (числа, даты, строки и т. п.) в визуальные значения (пиксели, цвета, размеры).null отключает шкалу и кодирует значение данных непосредственно.По умолчанию: применяются стандартные свойства шкалы. См. scale. |
sort |
Sort | Порядок сортировки кодируемого поля. Для непрерывных полей (количественных или временных): "ascending" или "descending".Для дискретных полей: • "ascending" или "descending" — естественный порядок значений в JavaScript.• Имя канала кодирования, например "x" или "y", с необязательным минусом для убывания. "sort": "-x" эквивалентно "sort": {"encoding": "x", "order": "descending"}.• Определение поля сортировки — сортировка по другому полю. • Массив значений в желаемом порядке. Неуказанные значения следуют после перечисленных в исходном порядке. Для дискретного временного поля можно использовать объекты даты и времени; для "month" и "day" — английские названия месяцев и дней без учёта регистра или трёхбуквенные сокращения, например "Mon", "Tue".• null — без сортировки.По умолчанию: "ascending".Примечание: null и сортировка по другому каналу не поддерживаются для row и column. См. sort. |
Пример: группированная столбчатая диаграмма
Примечание: о настройке размера шага шкалы смещения читайте в разделе размеров представления.
Пример: случайное смещение точек
Пример: диапазоны через количественное смещение
Каналы xOffset и yOffset также могут задавать диапазон для примитивов bar и area, если основной канал положения дискретный. В этом режиме Vega-Lite интерпретирует количественное смещение как значение от базовой линии внутри полосы (0) до значения смещения: примитивы получают протяжённость в направлении смещения.
Например, при номинальном канале y, задающем дорожки, и количественном yOffset каждый столбец простирается от базовой линии своей дорожки до yOffset внутри неё.
Это удобно для сравнения диапазонов внутри полос, когда нужно сохранить категориальные дорожки и закодировать величину смещением.
Примитивы пути (line, area и trail) рисуются единым связным путём, поэтому диаграмма с несколькими дорожками соединяет точки разных дорожек. Чтобы рисовать отдельный путь для каждой, добавьте канал группировки, например detail или color, повторно использующий поле дорожки:
Каналы полярных координат
Каналы theta и radius определяют положение или интервал в полярных координатах для примитивов arc и text.
| Свойство | Тип | Описание |
|---|---|---|
theta |
PolarDef | Для дуг: угловая протяжённость в радианах, если theta2 не задан, иначе начальный угол дуги. Ноль направлен вверх («на север»), значения возрастают по часовой стрелке.Для текста: угол полярных координат в радианах. |
radius |
PolarDef | Внешний радиус дуги в пикселях. |
theta2 |
Position2Def | Конечный угол дуги в радианах. Ноль направлен вверх («на север»), значения возрастают по часовой стрелке. |
radius2 |
Position2Def | Внутренний радиус дуги в пикселях. |
Определение поля и datum для полярных координат
Определения полей и datum для полярных координат могут включать scale, stack и sort, подобно определениям поля и datum для положения.
Каналы географических координат
Каналы longitude и latitude кодируют географические координаты через проекцию. Каналы longitude2 и latitude2 могут задавать вторую границу географически спроецированных областей, столбцов, прямоугольников и отрезков.
| Свойство | Тип | Описание |
|---|---|---|
longitude |
LatLongDef | Долгота географически спроецированного примитива. |
latitude |
LatLongDef | Широта географически спроецированного примитива. |
longitude2 |
Position2Def | Вторая долгота географически спроецированных area, bar, rect и rule, задающих диапазон. |
latitude2 |
Position2Def | Вторая широта географически спроецированных area, bar, rect и rule, задающих диапазон. |
Смотрите пример использования longitude и latitude на карте или пример отрезков rule между точками карты.
Каналы свойств примитивов
Эти каналы сопоставляют поля данных визуальным свойствам примитивов. По умолчанию Vega-Lite автоматически создаёт шкалу и легенду для каждого поля, связанного с таким каналом. Если их свойства не заданы, компилятор определяет их по набору правил. Свойства scale и legend определения поля позволяют изменить эти настройки. Определения каналов свойств примитива также могут включать condition, задающее условную логику.
Список каналов свойств примитива:
| Свойство | Тип | Описание |
|---|---|---|
angle |
NumericMarkPropDef | Угол поворота точечных и текстовых примитивов. |
color |
ColorDef | Цвет примитива: заливки или обводки в зависимости от свойства filled определения примитива. По умолчанию задаёт заливку для area, bar, tick, text, trail, circle и square, обводку — для line и point.По умолчанию: определяется свойством color конфигурации примитивов.Для раздельного управления заливкой и обводкой используйте fill и stroke: они имеют приоритет над color и могут переопределять его при конфликте. О настройке цветовой схемы читайте в документации шкал. |
fill |
ColorDef | Цвет заливки примитива. По умолчанию: определяется свойством color конфигурации примитивов.Кодирование fill имеет приоритет над color и может переопределять его при конфликте. |
stroke |
ColorDef | Цвет обводки примитива. По умолчанию: определяется свойством color конфигурации примитивов.Кодирование stroke имеет приоритет над color и может переопределять его при конфликте. |
opacity |
NumericMarkPropDef | Непрозрачность примитива. По умолчанию: определяется свойством opacity конфигурации примитивов. |
fillOpacity |
NumericMarkPropDef | Непрозрачность заливки примитива. По умолчанию: определяется свойством fillOpacity конфигурации примитивов. |
strokeOpacity |
NumericMarkPropDef | Непрозрачность обводки примитива. По умолчанию: определяется свойством strokeOpacity конфигурации примитивов. |
shape |
ShapeDef | Форма примитива. Для point поддерживаются: "circle", "square", "cross", "diamond", "triangle-up", "triangle-down", "triangle-right", "triangle-left"; линейный символ "stroke"; центрированные направленные формы "arrow", "wedge", "triangle"; собственная строка пути SVG. Для правильного размера путь должен быть задан внутри квадрата с координатами от −1 до 1 по обеим осям.Для geoshape это должно быть определение поля с данными GeoJSON.По умолчанию: свойство shape конфигурации точек, либо "circle", если оно не задано. |
size |
NumericMarkPropDef | Размер примитива. • Для point, square и circle — размер символа, то есть площадь примитива в квадратных пикселях.• Для bar и tick — размер столбца или штриха.• Для text — размер шрифта.• Не поддерживается для line, area и rect. Для линии переменной толщины используйте trail. |
strokeDash |
NumericArrayMarkPropDef | Массив длин штрихов и промежутков обводки. По умолчанию: [1, 0] — сплошная линия. |
strokeWidth |
NumericMarkPropDef | Толщина обводки примитива. По умолчанию: определяется свойством strokeWidth конфигурации примитивов. |
Определение поля и datum для свойств примитива
Определения полей этих каналов могут включать свойства из таблицы ниже, помимо field, type, bin, timeUnit и aggregate. Определения datum также поддерживают эти свойства.
| Свойство | Тип | Описание |
|---|---|---|
scale |
Scale, null | Объект свойств шкалы канала — функции, преобразующей значения области данных (числа, даты, строки и т. п.) в визуальные значения (пиксели, цвета, размеры).null отключает шкалу и кодирует значение данных непосредственно.По умолчанию: применяются стандартные свойства шкалы. См. scale. |
legend |
Legend, null | Объект свойств легенды. null удаляет легенду канала.По умолчанию: применяются стандартные свойства легенды. См. legend. |
condition |
ConditionalValueDef<(number|ExprRef)>, ConditionalValueDef<(number|ExprRef)>[] | Одно или несколько определений значений с параметром или проверочным предикатом. Примечание: свойство condition определения поля может содержать только условные определения значений, поскольку Vega-Lite допускает не более одного кодируемого поля на канал. |
Определение значения для свойств примитива
Помимо постоянного value, определения значений этих каналов могут включать свойство condition, задающее условную логику.
| Свойство | Тип | Описание |
|---|---|---|
condition |
ConditionalMarkPropFieldOrDatumDef, ConditionalValueDef<(number|ExprRef)>, ConditionalValueDef<(number|ExprRef)>[] | Определение поля или одно/несколько определений значений с предикатом параметра. |
Примеры задания условной логики приведены на странице condition.
Каналы текста и всплывающей подсказки
Эти каналы непосредственно кодируют текстовые значения полей данных. По умолчанию Vega-Lite выбирает подходящий формат количественных и временных значений. Свойство format позволяет настроить формат чисел и времени. Как и каналы свойств примитивов, определения каналов текста и подсказки могут включать condition, задающее условную логику.
| Свойство | Тип | Описание |
|---|---|---|
text |
TextDef | Текст примитива text. |
tooltip |
StringFieldDefWithCondition, StringValueDefWithCondition, TooltipFieldDef[], null | Текст подсказки при наведении мыши. Кодирование tooltip переопределяет свойство tooltip определения примитива.Подробнее — в документации tooltip. |
Определение поля для текста и подсказки
Помимо общих свойств определения поля, определения полей каналов text и tooltip могут включать:
| Свойство | Тип | Описание |
|---|---|---|
format |
Format | Спецификатор формата чисел и дат/времени в подписях осей, легенд, заголовков панелей и в текстовых примитивах. При formatType: "number", например для количественных полей, используется строка шаблона числового формата D3.При formatType: "time", например для временных полей, используется либо строка статического формата времени D3, либо объект динамического формата времени, выбирающий формат по детализации входной даты — границе года, месяца, дня, часа и т. п.При собственном formatType это значение передаётся зарегистрированной функции как format вместе с datum.value.По умолчанию: определяется numberFormat или timeFormat конфигурации. |
formatType |
string | Тип формата подписей: "number", "time" или зарегистрированный собственный тип.По умолчанию: "time" для временных полей и порядковых/номинальных полей с timeUnit; "number" для количественных полей и порядковых/номинальных полей без timeUnit. |
condition |
ConditionalValueDef<(Text|ExprRef)>, ConditionalValueDef<(Text|ExprRef)>[] | Одно или несколько определений значений с параметром или проверочным предикатом. Примечание: свойство condition определения поля может содержать только условные определения значений, поскольку Vega-Lite допускает не более одного кодируемого поля на канал. |
Определение значения для текста и подсказки
Помимо постоянного value, определения значений каналов text и tooltip могут включать condition, задающее условную логику.
| Свойство | Тип | Описание |
|---|---|---|
condition |
ConditionalStringFieldDef, ConditionalValueDef<(Text|ExprRef)>, ConditionalValueDef<(Text|ExprRef)>[] | Определение поля или одно/несколько определений значений с предикатом параметра. |
Несколько определений полей для подсказки
Подобно каналу detail, здесь можно использовать массив определений полей. Vega-Lite покажет подсказку с несколькими полями. Обработчик Vega Tooltip выводит таблицу с именами полей и их значениями. Подробнее — на странице всплывающей подсказки.
Определения полей массива также могут включать предикат filter, исключающий отдельные поля во время выполнения:
| Свойство | Тип | Описание |
|---|---|---|
filter |
TooltipFieldFilter | Предикат, определяющий включение поля в создаваемую подсказку и описание ARIA. Проверяется относительно значения этого поля и не должен содержать свойства field или timeUnit. Например, "filter": {"gt": 0} включает поле только при положительном значении, а "filter": {"valid": true} — только если значение не равно null или NaN.См. tooltip. |
Канал гиперссылки
Если задать канал href, примитив становится гиперссылкой. Указанный URL загружается при щелчке мышью. При заданном href свойство cursor примитива по умолчанию принимает значение "pointer", обозначая возможность перехода по ссылке.
| Свойство | Тип | Описание |
|---|---|---|
href |
StringFieldDefWithCondition, StringValueDefWithCondition | URL, загружаемый при щелчке мышью. |
Определение поля гиперссылки
Помимо общих свойств определения поля, определение поля канала href может включать condition, задающее условную логику.
| Свойство | Тип | Описание |
|---|---|---|
condition |
ConditionalValueDef<(string | ExprRef)>, ConditionalValueDef<(string |
Примечание о версии: в исходной таблице указано устаревшее определение типа. Здесь приведён актуальный тип свойства condition.
Пример ниже показывает, как канал href добавляет ссылки на ресурсы с дополнительными сведениями. В русской копии ссылки ведут на внутреннюю страницу справочника.
Определение значения гиперссылки
Помимо постоянного value, определение значения канала href может включать condition, задающее условную логику.
| Свойство | Тип | Описание |
|---|---|---|
condition |
ConditionalStringFieldDef, ConditionalValueDef<(Text|ExprRef)>, ConditionalValueDef<(Text|ExprRef)>[] | Определение поля или одно/несколько определений значений с предикатом параметра. |
Канал описания
Канал description добавляет примитиву текстовое описание для доступности ARIA (только при выводе SVG). Атрибут aria-label в созданном SVG получает это описание.
По умолчанию Vega-Lite создаёт описание на основе кодирования, подобно подсказкам по умолчанию. Чтобы отключить автоматические описания, задайте config.aria равным false. Если mark.aria равно false, описание не создаётся.
| Свойство | Тип | Описание |
|---|---|---|
description |
StringFieldDefWithCondition, StringValueDefWithCondition | Текстовое описание примитива для доступности ARIA (только при выводе SVG). Атрибут aria-label в SVG получает это описание. |
Определение поля описания
Помимо общих свойств определения поля, определения полей канала description могут включать:
| Свойство | Тип | Описание |
|---|---|---|
format |
Format | Спецификатор формата чисел и дат/времени в подписях осей, легенд, заголовков панелей и в текстовых примитивах. При formatType: "number", например для количественных полей, используется строка шаблона числового формата D3.При formatType: "time", например для временных полей, используется либо строка статического формата времени D3, либо объект динамического формата времени, выбирающий формат по детализации входной даты — границе года, месяца, дня, часа и т. п.При собственном formatType это значение передаётся зарегистрированной функции как format вместе с datum.value.По умолчанию: определяется numberFormat или timeFormat конфигурации. |
formatType |
string | Тип формата подписей: "number", "time" или зарегистрированный собственный тип.По умолчанию: "time" для временных полей и порядковых/номинальных полей с timeUnit; "number" для количественных полей и порядковых/номинальных полей без timeUnit. |
condition |
ConditionalValueDef<(Text|ExprRef)>, ConditionalValueDef<(Text|ExprRef)>[] | Одно или несколько определений значений с параметром или проверочным предикатом. Примечание: свойство condition определения поля может содержать только условные определения значений, поскольку Vega-Lite допускает не более одного кодируемого поля на канал. |
Определение значения описания
Помимо постоянного value, определение значения канала description может включать condition, задающее условную логику.
| Свойство | Тип | Описание |
|---|---|---|
condition |
ConditionalStringFieldDef, ConditionalValueDef<(Text|ExprRef)>, ConditionalValueDef<(Text|ExprRef)>[] | Определение поля или одно/несколько определений значений с предикатом параметра. |
Канал дополнительной детализации
Группировка данных — ещё одна важная операция визуализации. Для линий и областей сопоставление неагрегированного поля (без функции aggregate) любому каналу, не задающему положение, группирует линии и области с укладкой по этому полю. В агрегированных диаграммах все закодированные неагрегированные поля становятся полями группировки, подобно полям в GROUP BY SQL.
Канал detail задаёт дополнительное поле или поля группировки, не сопоставляя их визуальным свойствам.
| Свойство | Тип | Описание |
|---|---|---|
detail |
FieldDefWithoutScale, FieldDefWithoutScale[] | Дополнительные уровни детализации для группировки данных в агрегированных представлениях и примитивах line, trail и area, без сопоставления данных определённому визуальному каналу. |
Примеры
Диаграмма рассеяния ниже показывает среднюю мощность и рабочий объём двигателей автомобилей из разных регионов. Поле Origin сопоставлено каналу detail, чтобы использовать его для группировки без связи с визуальными свойствами примитивов.
Линейный график ниже показывает цены акций пяти технологических компаний во времени. Переменная symbol (биржевой тикер) сопоставлена detail, чтобы группировать линии.
Диаграмма с диапазонами ниже показывает изменение ожидаемой продолжительности жизни в пяти самых населённых странах с 1955 по 2000 год. Канал detail группирует линии так, чтобы каждая соединяла значения разных лет внутри одной страны, а не переходила между странами.
Канал ключа записи
Канал key позволяет сохранять соответствие объектов при переходах в визуализации с динамическими данными. Когда данные обновляются через Vega View API, значение ключа сопоставляет элементы данных существующим экземплярам примитивов.
| Свойство | Тип | Описание |
|---|---|---|
key |
FieldDefWithoutScale | Поле данных, используемое как уникальный ключ привязки. При обновлении данных значение ключа сопоставляет элементы данных существующим экземплярам примитивов. Канал ключа сохраняет соответствие объектов при переходах с динамическими данными. |
Канал порядка
Канал order задаёт поле данных или упорядоченный список полей, определяющих порядок укладки (см. пример на странице stack), порядок точек линии в связной диаграмме рассеяния (см. пример на странице line) или то, какие точки рисуются поверх других (порядок по Z; см. пример в галерее).
| Свойство | Тип | Описание |
|---|---|---|
order |
OrderFieldDef, OrderFieldDef[], OrderValueDef, OrderOnlyDef | Порядок примитивов. • Для примитивов с укладкой — порядок укладки. • Для line и trail — порядок точек линии; используется, например, в связной диаграмме рассеяния. "order": {"value": null} сохраняет исходный порядок источника данных для линий.• В остальных случаях — порядок наложения примитивов. Примечание: в агрегированных диаграммах поле order следует агрегировать, чтобы оно не создавало дополнительную группировку. |
Определение поля порядка
Помимо общих свойств определения поля, определения полей канала order могут включать sort.
| Свойство | Тип | Описание |
|---|---|---|
sort |
SortOrder | Порядок сортировки: "ascending" (по умолчанию) или "descending". |
Определение значения порядка
Помимо постоянного value, определение значения канала order может включать condition, задающее условную логику.
| Свойство | Тип | Описание |
|---|---|---|
condition |
ConditionalValueDef<number>, ConditionalValueDef<number>[] | Одно или несколько определений значений с параметром или проверочным предикатом. Примечание: свойство condition определения поля может содержать только условные определения значений, поскольку Vega-Lite допускает не более одного кодируемого поля на канал. |
Каналы панелей
Каналы facet, row и column разбивают одиночную диаграмму на решётчатую диаграмму — набор небольших представлений.
| Свойство | Тип | Описание |
|---|---|---|
facet |
FacetEncodingFieldDef | Определение поля для гибкого разбиения решётчатой диаграммы на панели. Если заданы row или column, этот канал игнорируется. |
row |
RowColumnEncodingFieldDef | Определение поля для разбиения решётчатой диаграммы на панели по вертикали. |
column |
RowColumnEncodingFieldDef | Определение поля для разбиения решётчатой диаграммы на панели по горизонтали. |
Подробнее читайте в документации по разбиению на панели.