В спецификациях Vega-Lite легенда является отдельным компонентом,
отвечающим за объяснение визуальных каналов: цветов, форм, размеров,
штриховок и других эстетических отображений данных. Одним из ключевых
параметров конфигурации легенды выступает поле orient,
определяющее позиционирование легенды относительно области построения
графика.
Поле orient задаётся внутри блока legend и
влияет на общий макет визуализации, перераспределяя доступное
пространство между графиком и вспомогательными элементами.
orientПараметр orient управляет геометрическим
размещением легенды. Его значение определяет, с какой стороны
от графика будет отображаться легенда, либо будет ли она скрыта.
Поддерживаемые значения:
left — легенда размещается слева от области
построенияright — легенда размещается справаtop — легенда располагается над графикомbottom — легенда располагается под графикомnone — легенда отключается (не отображается)Каждое значение влияет не только на позицию, но и на внутреннюю компоновку сцены, включая перераспределение свободного пространства и возможное масштабирование области визуализации.
Система компоновки Vega-Lite рассматривает легенду как элемент
layout-модели. При задании orient происходит
перерасчёт:
Легенда не является «накладываемым» элементом в классическом смысле, а участвует в раскладке сцены.
top и bottomПри значениях:
"orient": "top"
или
"orient": "bottom"
легенда растягивается по горизонтали и занимает полную ширину графика.
Особенности поведения:
direction)Пример:
{
"mark": "bar",
"encoding": {
"x": {"field": "category", "type": "nominal"},
"y": {"field": "value", "type": "quantitative"},
"color": {"field": "group", "type": "nominal",
"legend": {
"orient": "top"
}
}
}
}
left и rightЗначения:
"orient": "left"
"orient": "right"
переносят легенду в вертикальную колонку.
Поведение:
Пример:
{
"mark": "line",
"encoding": {
"x": {"field": "date", "type": "temporal"},
"y": {"field": "value", "type": "quantitative"},
"color": {
"field": "series",
"type": "nominal",
"legend": {
"orient": "right"
}
}
}
}
noneЗначение:
"orient": "none"
используется для полного отключения легенды на уровне конкретного канала.
Особенности:
Пример:
{
"mark": "point",
"encoding": {
"x": {"field": "x", "type": "quantitative"},
"y": {"field": "y", "type": "quantitative"},
"color": {
"field": "type",
"legend": {
"orient": "none"
}
}
}
}
При изменении orient перерасчёт компоновки происходит на
уровне layout-движка Vega.
Ключевые эффекты:
Легенда вычитает пространство из основной области визуализации.
Оси могут сдвигаться или масштабироваться, особенно при
left и right.
При большом количестве категорий:
directionПоле orient часто используется совместно с:
legend.directiondirection управляет направлением элементов внутри
легенды:
verticalhorizontalКомбинации:
orient: "top" + direction: "horizontal" — классическая
строка цветовorient: "right" + direction: "vertical" — стандартный
список категорийПри отсутствии явного orient Vega-Lite использует
эвристику:
righttop или
bottomАвтоматический выбор может меняться в зависимости от:
line, bar,
area)orient фактически является инструментом управления
балансом между:
Вертикальные легенды эффективны при:
Горизонтальные легенды эффективны при:
orient не влияет на порядок элементов — только на
позициюlegend.labelLimitВ системах, основанных на Vega, компоновка легенд является частью
общего layout graph pipeline, поэтому изменения orient
приводят к пересборке сцены, а не к локальному смещению элемента.
Вертикальная легенда справа:
"legend": {
"orient": "right"
}
Горизонтальная легенда снизу:
"legend": {
"orient": "bottom"
}
Отключение легенды:
"legend": {
"orient": "none"
}
При росте количества категорий влияние orient
усиливается:
В таких случаях часто используется комбинация:
orient является одним из ключевых параметров адаптивного
дизайна визуализаций, так как: