В спецификациях Vega-Lite и Vega поле title используется
для задания текстовых подписей, которые сопровождают визуальные элементы
графика. Это один из базовых механизмов аннотации, влияющий на
читаемость и семантическую ясность визуализации. Поле применяется на
разных уровнях: заголовок всей диаграммы, подписи осей, заголовки легенд
и группировок.
title в
контексте различных компонентовВ Vega-Lite поле title встречается в нескольких
структурах спецификации:
axis.title)legend.title)title)header.title)Несмотря на одинаковое имя, семантика зависит от контекста объекта, в котором оно используется.
На верхнем уровне спецификации title задаёт основной
заголовок диаграммы:
{
"data": {"url": "data.csv"},
"mark": "bar",
"encoding": {
"x": {"field": "category", "type": "nominal"},
"y": {"field": "value", "type": "quantitative"}
},
"title": "Распределение значений по категориям"
}
Этот заголовок является независимым элементом компоновки и не связан с осями или легендами.
axis.title как
отдельный тип titleВнутри осей поле title определяет текст подписи оси:
{
"mark": "line",
"encoding": {
"x": {
"field": "date",
"type": "temporal",
"axis": {
"title": "Дата"
}
},
"y": {
"field": "price",
"type": "quantitative",
"axis": {
"title": "Цена"
}
}
}
}
В данном случае axis.title выполняет роль семантического
описания шкалы. Оно может быть:
null (для отключения отображения)titleAngle как
параметр ориентацииПоле titleAngle управляет углом поворота текста
заголовка. Оно применяется в контексте осей и позволяет контролировать
визуальное размещение подписи относительно шкалы.
По умолчанию Vega-Lite использует автоматическую ориентацию:
x) → заголовок горизонтальныйy) → заголовок повернут на -90
градусовtitleAngle переопределяет это поведение.
{
"mark": "bar",
"encoding": {
"x": {
"field": "category",
"type": "nominal",
"axis": {
"title": "Категория",
"titleAngle": 0
}
},
"y": {
"field": "value",
"type": "quantitative",
"axis": {
"title": "Значение",
"titleAngle": -45
}
}
}
}
titleAngleЗначение titleAngle задаётся в градусах и
интерпретируется по следующим правилам:
0 — горизонтальное расположение текста90 — вертикальное расположение (снизу вверх)-90 — вертикальное расположение (сверху вниз)Важно учитывать, что Vega-Lite использует SVG-координаты, где положительный поворот осуществляется по часовой стрелке.
При наличии нескольких источников конфигурации
titleAngle может задаваться на разных уровнях:
config.axis.titleAngle)axis.titleAngle)Приоритет всегда отдается более локальному уровню. Это позволяет гибко управлять визуальным стилем без изменения глобальной конфигурации.
Изменение titleAngle влияет не только на ориентацию
текста, но и на геометрию отступов. Vega-Lite автоматически
перерасчитывает:
При значительных углах наклона возможны смещения области визуализации, особенно при длинных заголовках.
titleAlign и titleAnchortitleAngle часто используется совместно с параметрами
выравнивания:
titleAlign — горизонтальное выравнивание текстаtitleBaseline — вертикальное выравниваниеtitleAnchor — привязка к осиПример комбинированной настройки:
{
"axis": {
"title": "Очень длинное название оси",
"titleAngle": 30,
"titleAlign": "right",
"titleAnchor": "end"
}
}
Такая комбинация позволяет точно контролировать положение подписи при диагональном отображении.
В Vega-Lite titleAngle является декларативным свойством
высокого уровня. В Vega (низкоуровневой спецификации) управление углом
текста осуществляется через сигналы (signal) и прямую
настройку текста в text или axis.titleAngle
внутри axis-компонента.
Пример Vega:
{
"axes": [
{
"orient": "bottom",
"title": "Категория",
"titleAngle": 0
}
]
}
В Vega больше контроля над каждым визуальным элементом, но меньше автоматизации, чем в Vega-Lite.
При использовании длинных строк заголовков titleAngle
становится критически важным для предотвращения:
Типичные стратегии:
0) для компактных
графиков-30, -45) при плотных подписях
категорий-90) для стандартных
количественных осейРендеринг titleAngle осуществляется на уровне
SVG-трансформаций. Текстовый элемент получает трансформацию:
rotate(angle)Это означает, что визуальный результат зависит не только от угла, но
и от точки anchor, используемой Vega-Lite при расчёте
позиции.
Глобальная конфигурация позволяет задать стандартное поведение:
{
"config": {
"axis": {
"titleAngle": 0
}
}
}
Такой подход фиксирует единый стиль отображения заголовков по всей системе визуализаций, снижая необходимость локальных переопределений.