Фасетирование в Vega-Lite представляет собой механизм разбиения
набора данных на подгруппы с автоматической генерацией повторяющихся
графических панелей. Каждая такая панель сопровождается заголовком
(header), который описывает значение соответствующего измерения. Поле
header управляет внешним видом, структурой и поведением
этих заголовков как для строковых (row), так и для
столбцовых (column) фасетов.
Фасетирование трансформирует одну спецификацию графика в сетку визуализаций. В этом контексте заголовки выполняют функцию:
Без корректно настроенного header фасет теряет
интерпретируемость, особенно при высокой кардинальности категорий.
header в
Vega-LiteПоле header может быть задано внутри facet,
row или column каналов.
Типичная структура:
{
"facet": {
"row": {
"field": "category",
"type": "nominal",
"header": {
"title": "Категория",
"labelAngle": 0
}
}
}
}
header представляет собой объект конфигурации, влияющий
на отображение заголовков.
headertitleОпределяет текст заголовка для оси фасетирования.
Используется для:
Пример:
"header": {
"title": "Регион"
}
Если title не задан, используется имя поля.
labelAngleКонтролирует угол наклона текста заголовков.
Используется при длинных значениях категорий:
0 — горизонтальное отображение;-45, -90 — поворот для экономии
места."header": {
"labelAngle": -45
}
labelAlign и
labelBaselineОпределяют позиционирование текста:
labelAlign: left | center | rightlabelBaseline: top | middle | bottomПозволяют тонко регулировать размещение при сложных сетках фасетов.
labelColor и
labelFontSizeОтвечают за визуальную стилизацию:
labelColor задаёт цвет текста;labelFontSize определяет размер шрифта.Пример:
"header": {
"labelColor": "#333",
"labelFontSize": 12
}
format и
formatTypeИспользуются для преобразования значений перед отображением.
format — строка форматирования (например,
d3-format);formatType — тип форматтера (number,
time, utc).Пример:
"header": {
"format": ".2f",
"formatType": "number"
}
orientОпределяет расположение заголовков относительно фасетной сетки:
topbottomleftrightИспользуется для управления компоновкой в плотных визуализациях.
"header": {
"orient": "top"
}
labelPaddingЗадаёт отступ между заголовком и визуальной областью.
Особенно важно при плотных сетках фасетов, где пересечение текста и графики ухудшает читаемость.
header в
row и columnrow.header)column.header)headerЕсли header не задан:
field как текст заголовка;Это может привести к:
header поддерживает каскадную конфигурацию:
config.facet.header);header в row или
column;Локальные параметры всегда имеют приоритет.
labelExprВ более сложных сценариях форматирование может задаваться через выражения:
"header": {
"labelExpr": "datum.value.toUpperCase()"
}
Это позволяет:
В низкоуровневом Vega фасеты компилируются в групповые
marks, где заголовки реализуются как отдельные текстовые
элементы (text marks). Конфигурация header
трансформируется в набор параметров для этих элементов:
encode.enter);Таким образом, header в Vega-Lite является абстракцией
над более детализированной системой управления метками в Vega.
Чрезмерное использование:
Приводит к потере сеточной структуры.
Смешение row.header и column.header с
разной логикой выравнивания создаёт визуальный дисбаланс.
При высокой кардинальности категорий заголовки становятся основным источником визуального шума. В таких случаях:
labelFontSize;labelLimit;format или
labelExpr.configГлобальные настройки:
{
"config": {
"facet": {
"header": {
"labelFontSize": 11,
"labelPadding": 4,
"labelAngle": 0
}
}
}
}
Применяются ко всем фасетам, если не переопределены локально.
В фасетных диаграммах заголовки выполняют функцию метаданных визуализации:
При этом визуальная система воспринимает header как
равноправный элемент графика наряду с осями и маркерами данных, а не как
вспомогательную подпись.