Поле title является одним из базовых элементов описания
визуализации в экосистеме Vega и Vega-Lite. Оно отвечает за текстовое
обозначение графика, формируя его верхнюю смысловую рамку. Несмотря на
внешнюю простоту, title обладает значительной выразительной
мощностью: поддерживает как статические строки, так и динамические
выражения, стилизацию, позиционирование и интеграцию с конфигурацией
всей визуализации.
titleВ Vega-Lite поле title задаётся на верхнем уровне
спецификации:
{
"data": { "url": "data.csv" },
"mark": "bar",
"encoding": {
"x": { "field": "category", "type": "nominal" },
"y": { "field": "value", "type": "quantitative" }
},
"title": "Продажи по категориям"
}
В этом случае title представляет собой строку,
отображаемую над графиком. Vega-Lite автоматически размещает её в
стандартной позиции и применяет базовое оформление.
titleДля расширенного управления используется объектная форма:
{
"title": {
"text": "Продажи по категориям",
"anchor": "start",
"fontSize": 18,
"color": "#333",
"fontWeight": "bold"
}
}
Ключевое отличие объектной формы заключается в возможности контролировать визуальное представление заголовка без необходимости модифицировать конфигурацию всей визуализации.
Основные свойства:
text — текст заголовкаanchor — выравнивание (start,
middle, end)fontSize — размер шрифтаfontWeight — насыщенность текстаcolor — цвет текстаfont — семейство шрифтаЗаголовок может быть задан как массив строк:
{
"title": {
"text": ["Продажи по категориям", "за 2025 год"],
"anchor": "middle"
}
}
Каждый элемент массива интерпретируется как отдельная строка, формируя многострочный заголовок без необходимости использования HTML или специальных символов переноса.
Vega-Lite поддерживает вычисляемые заголовки, основанные на сигналах и выражениях:
{
"title": {
"expr": "'Анализ данных: ' + datum.datasetName"
}
}
В Vega (низкоуровневом языке) используется более гибкая система сигналов:
{
"title": {
"text": {"signal": "datasetName + ' — визуализация'"}
}
}
Такая модель позволяет изменять заголовок в зависимости от состояния данных или внешних параметров.
title в
Vega и Vega-Litetitle чаще строка или объект с фиксированными
стилямиtitle является частью рендерного дереваsignal)Пример Vega:
{
"type": "text",
"encode": {
"enter": {
"text": { "value": "Заголовок графика" },
"x": { "value": 200 },
"y": { "value": 20 },
"fontSize": { "value": 16 }
}
}
}
Здесь заголовок перестаёт быть «специальным полем» и становится обычным визуальным элементом.
config.titleГлобальная конфигурация позволяет централизованно управлять всеми заголовками:
{
"config": {
"title": {
"font": "Arial",
"fontSize": 20,
"color": "#222",
"anchor": "start"
}
}
}
Такая настройка применяется ко всем title в
спецификации, если они не переопределены локально.
Поле title поддерживает управление расположением
относительно визуализации:
anchor — горизонтальное выравниваниеoffset — отступ от графикаorient — ориентация (в Vega чаще используется для осей,
но влияет на композицию)Пример:
{
"title": {
"text": "Сравнение показателей",
"anchor": "end",
"offset": 12
}
}
Vega-Lite позволяет добавлять подзаголовки:
{
"title": {
"text": "Продажи",
"subtitle": "по регионам за 2025 год"
}
}
Подзаголовок визуально отделяется меньшим размером шрифта и сниженной насыщенностью, образуя иерархию смыслов.
Для сложных случаев применяются выражения Vega:
{
"title": {
"text": {
"signal": "'Среднее значение: ' + format(datum.mean, '.2f')"
}
}
}
Поддерживаются функции форматирования чисел, конкатенация строк и доступ к данным через сигналы.
title с масштабом визуализацииЗаголовок влияет на компоновку холста. Vega-Lite автоматически резервирует пространство:
При динамическом изменении текста возможна перекомпоновка layout без ручного вмешательства.
title в
комбинированных графикахВ сложных композициях (layer, concat,
repeat) поле title может задаваться:
Пример:
{
"hconcat": [
{
"mark": "line",
"title": "Линия тренда"
},
{
"mark": "bar",
"title": "Распределение"
}
]
}
Каждый подграфик получает собственный независимый заголовок.
title от axis.title и
legend.titleВ Vega-Lite существует несколько типов заголовков:
title — общий заголовок визуализацииaxis.title — подпись осиlegend.title — заголовок легендыПример различий:
{
"title": "Общая визуализация",
"encoding": {
"x": {
"field": "year",
"type": "ordinal",
"axis": { "title": "Год" }
},
"color": {
"field": "group",
"type": "nominal",
"legend": { "title": "Категории" }
}
}
}
Каждый уровень выполняет собственную семантическую роль, не пересекающуюся с другими.
titleЕсли поле title не задано:
Это часто используется в встраиваемых визуализациях, где внешний контейнер уже содержит заголовок.
title в визуализацииПоле title выполняет функцию смыслового якоря:
В сложных дашбордах заголовок становится элементом композиционной иерархии, определяющим читаемость всей сцены.