Графические примитивы
Графические примитивы — видимые элементы диаграммы. Их положение, размер, цвет и другие свойства кодируют значения полей данных или задаются постоянными значениями. Свойство mark в спецификации отдельного представления принимает имя типа примитива или объект с его настройками.
// Спецификация одиночного представления
{
"data": ... ,
"mark": ... , // Примитив
"encoding": ... ,
...
}
Содержание страницы
Типы примитивов
Vega-Lite поддерживает базовые типы mark: "area" (область), "bar" (столбец), "circle" (круг), "line" (линия), "point" (точка), "rect" (прямоугольник), "rule" (линия правила), "square" (квадрат), "text" (текст), "tick" (штрих), "geoshape" (географическая фигура). Обычно каждой записи данных соответствует один примитив. Исключение — линии и области: они объединяют несколько записей в непрерывную форму.
Есть и составные примитивы — удобные шаблоны многослойных диаграмм: "boxplot" (ящик с усами), "errorband" (полоса неопределённости) и "errorbar" (отрезки погрешности).
Для простой столбчатой диаграммы достаточно указать строку "bar":
Объект определения примитива
// Спецификация одиночного представления
{
...,
"mark": {
"type": ..., // Примитив
...
},
...
}
Чтобы настроить свойства примитива, задайте mark объектом определения вместо строки с именем типа. Далее перечислены стандартные свойства базовых примитивов. У некоторых типов есть дополнительные свойства, описанные на их страницах. Например, точки поддерживают также shape и size.
Примечание: если заданы каналы свойств примитива, они переопределяют соответствующие свойства определения.
Общие свойства
| Свойство | Тип | Описание |
|---|---|---|
type |
Mark | Тип примитива: базовый ("bar", "circle", "square", "tick", "line", "area", "point", "geoshape", "rule", "text") или составной ("boxplot", "errorband", "errorbar"). |
aria |
boolean, ExprRef | Включать ли атрибуты ARIA (только при выводе SVG). При false выходной элемент SVG получает aria-hidden, исключая примитив из дерева доступности ARIA. |
cursor |
Cursor, ExprRef | Указатель мыши над примитивом. Допускается любое допустимое значение CSS cursor. |
description |
string, ExprRef | Текстовое описание примитива для доступности ARIA (только при выводе SVG). Если задано, определяет атрибут aria-label. |
style |
string, string[] | Строка или массив строк с именами собственных стилей примитива. Стиль — именованный набор стандартных значений свойств в конфигурации стилей. В массиве более поздние стили переопределяют ранние. Свойства примитива, явно заданные в encoding, переопределяют значения стиля.По умолчанию: имя примитива, например "bar" для столбцов.Примечание: собственный стиль дополняет стандартный. Столбец со "style": "foo" получает свойства из config.style.bar и config.style.foo; стиль foo имеет более высокий приоритет. |
tooltip |
number, string, boolean, TooltipContent, ExprRef, null | Текст подсказки при наведении мыши или объект, определяющий поля для её создания. • true или {"content": "encoding"} — все поля из encoding.• {"content": "data"} — все поля записи данных, на которую наведён указатель.• null или false — без подсказки.Подробнее см. всплывающие подсказки. По умолчанию: null. |
clip |
boolean, ExprRef | Обрезать ли примитив по ширине и высоте содержащей его группы. |
invalid |
MarkInvalidDataMode, null | Режим обработки некорректных данных: определяет, как примитивы и соответствующие шкалы представляют null и NaN в непрерывных шкалах, для которых не задано выходное значение для некорректных данных.• "filter" — исключает все некорректные значения из примитивов и шкал. Для линий, областей и trail соединяет допустимые точки, как если бы некорректных строк данных не было.• "break-paths-filter-domains" — разрывает линии, области и trail на некорректных значениях. Для остальных примитивов равнозначен "filter". Все области данных шкал исключают отфильтрованные точки.• "break-paths-show-domains" — разрывает пути на некорректных значениях; для остальных примитивов скрывает такие значения. Области данных всех шкал включают эти отфильтрованные точки.• "show" или null — показывает все точки в примитивах и областях данных шкал. Каждая шкала использует выходное значение из config.scale.invalid; если оно не задано, некорректные значения получают тот же вид, что ноль (если шкала включает ноль), или минимальное значение (если не включает).• "break-paths-show-path-domains" (по умолчанию) — равнозначен "break-paths-show-domains" для линий, областей и trail, а для остальных примитивов — "filter".Примечание: если в config.scale.invalid задан выход для некорректных значений шкалы канала, все значения этой шкалы считаются допустимыми, поскольку могут дать определённый результат. Поля таких каналов не фильтруются и не вызывают разрывы путей. |
order |
null, boolean | Для примитивов line и trail значение null или false заставляет линии следовать исходному порядку записей в источнике данных. |
Положение и смещение
| Свойство | Тип | Описание |
|---|---|---|
x |
number, "width", ExprRef | Координата X примитива либо ширина горизонтального "bar" или "area", если не заданы x2 и width.Значение может быть числом или строкой "width", обозначающей ширину диаграммы. |
x2 |
number, "width", ExprRef | Координата X2 для интервальных примитивов "area", "bar", "rect" и "rule".Значение может быть числом или строкой "width", обозначающей ширину диаграммы. |
width |
number, ExprRef, RelativeBandSize | Ширина примитива: число, задающее постоянную ширину в пикселях, или определение относительного размера полосы. Например, {band: 0.5} означает половину полосы. |
height |
number, ExprRef, RelativeBandSize | Высота примитива: число, задающее постоянную высоту в пикселях, или определение относительного размера полосы. Например, {band: 0.5} означает половину полосы. |
y |
number, "height", ExprRef | Координата Y примитива либо высота вертикального "bar" или "area", если не заданы y2 и height.Значение может быть числом или строкой "height", обозначающей высоту диаграммы. |
y2 |
number, "height", ExprRef | Координата Y2 для интервальных примитивов "area", "bar", "rect" и "rule".Значение может быть числом или строкой "height", обозначающей высоту диаграммы. |
xOffset |
number, ExprRef | Смещение положения X. |
x2Offset |
number, ExprRef | Смещение положения X2. |
yOffset |
number, ExprRef | Смещение положения Y. |
y2Offset |
number, ExprRef | Смещение положения Y2. |
Цвет
| Свойство | Тип | Описание |
|---|---|---|
filled |
boolean | Использовать ли цвет примитива для заливки вместо обводки. По умолчанию: false для point, line, rule, а также geoshape с источником данных graticule; иначе true.Примечание: это свойство нельзя задавать в конфигурации стилей. |
color |
Color, Gradient, ExprRef | Цвет по умолчанию. По умолчанию: ■ "#4c78a8".Примечания: это свойство нельзя задавать в конфигурации стилей. Свойства fill и stroke имеют более высокий приоритет и переопределяют color. |
fill |
Color, Gradient, null, ExprRef | Цвет заливки по умолчанию. Имеет более высокий приоритет, чем config.color. Значение null убирает заливку.По умолчанию: не задано. |
stroke |
Color, Gradient, null, ExprRef | Цвет обводки по умолчанию. Имеет более высокий приоритет, чем config.color. Значение null убирает обводку.По умолчанию: не задано. |
blend |
Blend, ExprRef | Режим смешивания цвета элемента с текущим фоном. Допускается любое допустимое значение CSS mix-blend-mode.По умолчанию: "source-over". |
opacity |
number, ExprRef | Общая непрозрачность, от 0 до 1.По умолчанию: 0.7 для диаграмм без агрегирования с примитивами point, tick, circle, square или многослойных столбчатых диаграмм; иначе 1. |
fillOpacity |
number, ExprRef | Непрозрачность заливки, от 0 до 1.По умолчанию: 1. |
strokeOpacity |
number, ExprRef | Непрозрачность обводки, от 0 до 1.По умолчанию: 1. |
Оформление обводки
| Свойство | Тип | Описание |
|---|---|---|
strokeCap |
StrokeCap, ExprRef | Форма конца линии: "butt", "round" или "square".По умолчанию: "butt". |
strokeDash |
number[], ExprRef | Массив чередующихся длин штрихов и промежутков для пунктирных или штриховых линий. |
strokeDashOffset |
number, ExprRef | Смещение в пикселях, с которого начинается отрисовка рисунка штрихов. |
strokeJoin |
StrokeJoin, ExprRef | Способ соединения отрезков линии: "miter", "round" или "bevel".По умолчанию: "miter". |
strokeMiterLimit |
number, ExprRef | Предел острого соединения, при достижении которого оно заменяется скошенным. |
strokeWidth |
number, ExprRef | Толщина обводки в пикселях, неотрицательная. |
В примере ниже линии границ имеют штриховку strokeDash: [6, 4]:
Гиперссылка
Примитивы могут действовать как гиперссылки, если задано свойство href или соответствующий канал. При заданном href свойство cursor по умолчанию получает значение "pointer", показывающее возможность перехода.
| Свойство | Тип | Описание |
|---|---|---|
href |
URI, ExprRef | URL для перехода при нажатии мышью. Если задан, примитив действует как гиперссылка. |
Настройки примитивов по умолчанию
// Спецификация представления верхнего уровня
{
...,
"config": {
"mark": ...,
"area": ...,
"bar": ...,
"circle": ...,
"line": ...,
"point": ...,
"rect": ...,
"rule": ...,
"geoshape": ...,
"square": ...,
"text": ...,
"tick": ...
}
}
Свойство mark объекта config задаёт значения по умолчанию для всех примитивов. Кроме того, config позволяет настраивать отдельные типы по их именам, например config.area.
Общая конфигурация config.mark поддерживает все стандартные свойства примитивов, кроме type, style, clip и orient. Параметры отдельных типов описаны на соответствующих страницах.
Примечания:
- Свойства определения примитива и каналы свойств примитива переопределяют значения конфигурации.
- Конфигурация примитивов не поддерживает свойства смещения.
Именованные стили
{
// Спецификация верхнего уровня
"config": {
"style": {
...
},
...
}
}
Помимо стандартных свойств примитивов, описанных выше, значения по умолчанию можно задавать через именованные стили в свойстве style объекта конфигурации.
| Свойство | Тип | Описание |
|---|---|---|
style |
StyleConfigIndex | Объект соответствий имён стилей и стандартных свойств примитивов с данным стилем. Ключи — имена стилей; значения должны быть допустимыми объектами конфигурации примитива. |
Например, следующий стиль "triangle" задаёт стандартную форму и толщину обводки для точек:
{
"style": {
"triangle": {
"shape": "triangle-up",
"strokeWidth": 2
}
}
}
Чтобы применить стиль, укажите свойство style в объекте определения примитива.
Примечание: для оформления направляющих элементов (осей, заголовков панелей и легенд) Vega-Lite предоставляет следующие встроенные имена стилей:
"guide-label"— подписи осей, легенд и заголовков панелей."guide-title"— названия осей, легенд и заголовков панелей."group-title"— названия диаграмм.
Пример: подписи столбцов
Примитивы text можно использовать как подписи других примитивов: задайте им style, а через конфигурацию стилей настройте смещение (dx или dy), align и baseline.
См. также: аналогичный пример с настройкой смещения, выравнивания и базовой линии в определении примитива.