Легенда

Подобно осям, легенды показывают смысл шкал. Оси помогают интерпретировать шкалы положения, а легенды — шкалы с такими выходными значениями, как цвета, формы и размеры.

По умолчанию Vega-Lite автоматически создаёт легенды со стандартными свойствами для каналов color, opacity, size и shape, когда они кодируют поля данных. Свойство legend в определении поля канала свойств примитива можно задать объектом для настройки свойств легенды или установить в null, чтобы убрать легенду.

Помимо legend в определении поля, объект config предоставляет конфигурацию легенд (config: {legend: {...}}), задающую свойства по умолчанию для всех легенд.

Виды легенд

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

В остальных случаях создаются символьные легенды.

Объединение легенд

Если несколько каналов кодируют одни и те же поля, Vega-Lite автоматически объединяет их легенды. Например, следующая диаграмма кодирует Origin цветом (color) и формой (shape); в результате легенда показывает и кодируемые цвета, и формы.

Свойства легенды

// Спецификация одиночного представления или слоя
{
  ...,
  "mark/layer": ...,
  "encoding": {
    "x": ...,
    "y": ...,
    "color": {
      "field": ...,
      "type": ...,
      "legend": {                // Легенда
        ...
      },
      ...
    },
    ...
  }
}

Для настройки легенды укажите объект legend в определении канала кодирования. В этом разделе перечислены все свойства легенд.

См. также: интерактивная статья «A Guide to Guides: Axes & Legends in Vega» демонстрирует оси и легенды в базовом языке Vega.

Общие свойства

Свойство Тип Описание
aria boolean, ExprRef Включать ли атрибуты ARIA (только при выводе SVG). При false группа SVG получает aria-hidden, удаляя легенду из дерева доступности ARIA.

По умолчанию: true.
cornerRadius number, ExprRef Радиус скругления углов всей легенды.
description string, ExprRef Текстовое описание легенды для доступности ARIA (только при выводе SVG). Если aria равно true, атрибут aria-label получает это описание. Если описание не задано, оно создаётся автоматически.
direction Orientation Направление легенды: "vertical" или "horizontal".

По умолчанию: "horizontal" для расположения сверху/снизу, "vertical" для слева/справа. Для угловых положений (top-left, top-right, bottom-left, bottom-right) — "horizontal" у градиентных легенд и "vertical" у символьных.
fillColor null, Color, ExprRef Цвет заливки фона всей легенды.
legendX number, ExprRef Собственная координата X легенды с orient: "none".
legendY number, ExprRef Собственная координата Y легенды с orient: "none".
offset number, ExprRef Смещение легенды относительно прямоугольника данных и осей, в пикселях.

По умолчанию: 18.
orient LegendOrient Расположение легенды в сцене: "left", "right", "top", "bottom", "top-left", "top-right", "bottom-left", "bottom-right", "none".

По умолчанию: "right".
padding number, ExprRef Отступ между границей и содержимым группы легенды.

По умолчанию: 0.
strokeColor null, Color, ExprRef Цвет обводки границы всей легенды.
type "symbol", "gradient" Вид легенды: "symbol" создаёт дискретную легенду, "gradient" — непрерывный цветовой градиент.

По умолчанию: "gradient" для количественных полей без разбиения на интервалы и временных полей; иначе "symbol".
tickCount TickCount, ExprRef Желаемое число значений делений количественной легенды.
values number[], string[], boolean[], DateTime[], ExprRef Явно заданные видимые значения легенды.
zindex number Неотрицательное целое число, определяющее порядок наложения легенды. При 0 она рисуется позади всех элементов диаграммы; для размещения поверх них используйте 1.

Градиент

Свойство Тип Описание
gradientLength number, ExprRef Длина основной оси цветового градиента в пикселях: высота вертикального градиента или ширина горизонтального. Неотрицательная.

По умолчанию: 200.
gradientOpacity number, ExprRef Непрозрачность цветового градиента.
gradientStrokeColor null, Color, ExprRef Цвет обводки градиента: шестнадцатеричный код или обычное имя цвета.

По умолчанию: "lightGray".
gradientStrokeWidth number, ExprRef Толщина обводки градиента в пикселях, неотрицательная.

По умолчанию: 0.
gradientThickness number, ExprRef Толщина цветового градиента в пикселях: ширина вертикального или высота горизонтального градиента. Неотрицательная.

По умолчанию: 16.

Подписи

Свойство Тип Описание
format Format Спецификатор формата чисел и дат/времени в подписях осей, легенд, заголовков панелей и в текстовых примитивах.

При formatType: "number", например для количественных полей, используется строка шаблона числового формата D3.

При formatType: "time", например для временных полей, используется либо строка статического формата времени D3, либо объект динамического формата времени, выбирающий формат по детализации входной даты — границе года, месяца, дня, часа и т. п.

При собственном formatType это значение передаётся зарегистрированной функции как format вместе с datum.value.

По умолчанию: определяется numberFormat или timeFormat конфигурации.
formatType string Тип формата подписей: "number", "time" или зарегистрированный собственный тип.

По умолчанию: "time" для временных полей и порядковых/номинальных полей с timeUnit; "number" для количественных полей и порядковых/номинальных полей без timeUnit.
labelAlign Align, ExprRef Выравнивание подписи легенды: "left", "center" или "right".
labelBaseline TextBaseline, ExprRef Положение базовой линии подписи: "top", "middle", "bottom" или "alphabetic".

По умолчанию: "middle".
labelColor null, Color, ExprRef Цвет подписи легенды: шестнадцатеричный код или обычное имя цвета.
labelExpr string Выражение Vega для настройки подписей.

Примечание: текст и значение подписи доступны через свойства label и value объекта datum, используемого легендой.
labelFont string, ExprRef Гарнитура шрифта подписи легенды.
labelFontSize number, ExprRef Размер шрифта подписи легенды, неотрицательный.

По умолчанию: 10.
labelFontStyle FontStyle, ExprRef Начертание шрифта подписи легенды.
labelLimit number, ExprRef Максимальная допустимая ширина подписей делений легенды, в пикселях.

По умолчанию: 160.
labelOffset number, ExprRef Смещение подписи легенды, неотрицательное.

По умолчанию: 4.
labelOverlap LabelOverlap, ExprRef Стратегия устранения пересечения подписей градиентной легенды. false отключает устранение. true (по умолчанию) или "parity" удаляет каждую вторую подпись. "greedy" последовательно просматривает подписи и удаляет каждую, пересекающую последнюю видимую; это часто лучше работает для логарифмических осей.

По умолчанию: true.

Символы

Свойство Тип Описание
symbolDash number[], ExprRef Массив чередующихся длин штрихов и промежутков [штрих, промежуток] для пунктирной обводки символов.
symbolDashOffset number, ExprRef Начальное смещение в пикселях при рисовании обводки по массиву штрихов.
symbolFillColor null, Color, ExprRef Цвет заливки символа легенды.
symbolOffset number, ExprRef Горизонтальное смещение символов легенды в пикселях.

По умолчанию: 0.
symbolOpacity number, ExprRef Непрозрачность символов легенды.
symbolSize number, ExprRef Размер символа легенды в пикселях, неотрицательный.

По умолчанию: 100.
symbolStrokeColor null, Color, ExprRef Цвет обводки символов легенды.
symbolStrokeWidth number, ExprRef Толщина обводки символа, неотрицательная.

По умолчанию: 1.5.
symbolType SymbolShape, ExprRef Форма символа: circle (по умолчанию), square, cross, diamond, triangle-up, triangle-down, triangle-right, triangle-left; линейный символ stroke; центрированные направленные формы arrow, wedge, triangle. Также можно задать собственную строку пути SVG. Для правильного размера путь должен помещаться в квадрат с координатами от −1 до 1 по обеим осям.

По умолчанию: "circle".

Расположение символов

Свойство Тип Описание
clipHeight number, ExprRef Высота в пикселях, по которой обрезаются элементы символьной легенды для ограничения их размера.
columnPadding number, ExprRef Горизонтальный отступ между элементами символьной легенды, в пикселях.

По умолчанию: 10.
columns number, ExprRef Число столбцов символьной легенды. Значение 0 или меньше означает одну строку с отдельным столбцом для каждого элемента.
gridAlign LayoutAlign, ExprRef Выравнивание строк и столбцов символьной легенды: "all", "each" (по умолчанию) или "none". Подробнее — в документации сеточной компоновки Vega.

По умолчанию: "each".
rowPadding number, ExprRef Вертикальный отступ между элементами символьной легенды, в пикселях.

По умолчанию: 2.
symbolLimit number, ExprRef Максимально допустимое число элементов символьной легенды. Остальные элементы отбрасываются.

Название

Свойство Тип Описание
title Text, null Название поля. null убирает название.

По умолчанию: формируется из имени поля и преобразований aggregate, bin и timeUnit. Функция агрегирования включается в название, например "Sum of Profit"; разбиение и единица времени указываются в скобках, например "Profit (binned)" или "Transaction Date (year-month)". Без преобразований используется имя поля.

Формат названия можно изменить свойством fieldTitle в config или функцией fieldTitle в параметрах compile. Если задано и название поля, и title оси, заголовка панели или легенды, используется название оси, заголовка или легенды.
titleAlign Align, ExprRef Горизонтальное выравнивание названия легенды.

По умолчанию: "left".
titleAnchor TitleAnchor, ExprRef Положение текстовой привязки для размещения названия легенды.
titleBaseline TextBaseline, ExprRef Вертикальная базовая линия названия легенды: "alphabetic", "top", "middle", "bottom", "line-top" или "line-bottom". Варианты line-top и line-bottom действуют подобно top и bottom, но вычисляются относительно высоты строки, а не только размера шрифта.

По умолчанию: "top".
titleColor null, Color, ExprRef Цвет названия легенды: шестнадцатеричный код или обычное имя цвета.
titleFont string, ExprRef Гарнитура шрифта названия легенды.
titleFontSize number, ExprRef Размер шрифта названия легенды.
titleFontStyle FontStyle, ExprRef Начертание шрифта названия легенды.
titleFontWeight FontWeight, ExprRef Насыщенность шрифта названия: строка, например "bold" или "normal", либо число 100, 200, …, 900, где "normal" соответствует 400, а "bold" — 700.
titleLimit number, ExprRef Максимальная допустимая ширина названия легенды в пикселях, неотрицательная.

По умолчанию: 180.
titleLineHeight number, ExprRef Высота строки в пикселях для многострочного названия или названия с базовой линией "line-top" / "line-bottom".
titleOpacity number, ExprRef Непрозрачность названия легенды.
titlePadding number, ExprRef Отступ между названием и легендой, в пикселях.

По умолчанию: 5.

Конфигурация легенд

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

Конфигурация config: {legend: {...}} задаёт общую тему легенд и поддерживает все свойства легенды, кроме direction (вместо него используются отдельные gradientDirection и symbolDirection), format, tickCount, values и zindex.

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

Свойство Тип Описание
disable boolean Отключает создание легенд по умолчанию.
gradientDirection Orientation, ExprRef Направление градиентных легенд по умолчанию: "horizontal" или "vertical".

По умолчанию: "vertical".
gradientHorizontalMaxLength number Максимальная длина горизонтальной градиентной легенды, если config.legend.gradientLength не задано.

По умолчанию: 200.
gradientHorizontalMinLength number Минимальная длина горизонтальной градиентной легенды, если config.legend.gradientLength не задано.

По умолчанию: 100.
gradientLabelLimit number, ExprRef Максимальная допустимая длина подписей цветового градиента, в пикселях.
gradientLabelOffset number, ExprRef Вертикальное смещение подписей цветового градиента, в пикселях.

По умолчанию: 2.
gradientVerticalMaxLength number Максимальная длина вертикальной градиентной легенды, если config.legend.gradientLength не задано.

По умолчанию: 200.
gradientVerticalMinLength number Минимальная длина вертикальной градиентной легенды, если config.legend.gradientLength не задано.

По умолчанию: 100.
symbolBaseFillColor null, Color, ExprRef Цвет заливки символов легенды по умолчанию. Применяется только при отсутствии цветового кодирования шкалы fill для легенды.

По умолчанию: "transparent".
symbolBaseStrokeColor null, Color, ExprRef Цвет обводки символов легенды по умолчанию. Применяется только при отсутствии цветового кодирования шкалы fill для легенды.

По умолчанию: "gray".
symbolDirection Orientation, ExprRef Направление символьных легенд по умолчанию: "horizontal" или "vertical".

По умолчанию: "vertical".
unselectedOpacity number Непрозрачность невыбранных элементов легенды.

По умолчанию: 0.35.