Поле header используется в конфигурации фасетных и
композитных визуализаций, где данные разбиваются на подграфики по
категориям. Оно управляет отображением заголовков строк и колонок,
формируемых при использовании facet, row и
column. В рамках Vega-Lite именно header
определяет внешний вид и поведение этих заголовков, не затрагивая сами
данные и логику построения графика.
Фасетирование в Vega-Lite создаёт сетку графиков, где каждая ячейка
соответствует подмножеству данных. Поле header отвечает за
визуальное оформление подписей этих ячеек.
Фактически header управляет:
Без настройки header система использует значения по
умолчанию, что часто приводит к перегруженным или недостаточно
информативным подписям.
В Vega-Lite header может быть определён внутри
facet, row или column.
Пример базовой структуры:
{
"facet": {
"row": {
"field": "category",
"type": "nominal",
"header": {
"title": "Категория"
}
}
}
}
Здесь header.title задаёт отображаемый заголовок для
строк фасета.
title задаёт текст заголовка группы.
"header": {
"title": "Продажи по регионам"
}
Используется для замены имени поля на человекочитаемую подпись.
label управляет отображением значений категорий.
"header": {
"label": true
}
При false подписи скрываются полностью, что полезно при
плотных сетках графиков.
Определяет угол наклона текста.
"header": {
"labelAngle": 45
}
Применяется для предотвращения наложения длинных строк в заголовках.
Управляют выравниванием текста:
"header": {
"labelAlign": "right",
"labelBaseline": "middle"
}
labelAlign — горизонтальное выравнивание
(left, center, right)labelBaseline — вертикальное выравнивание
(top, middle, bottom)Позволяют управлять визуальным стилем:
"header": {
"labelColor": "#333",
"labelFont": "Arial"
}
Используются для интеграции с дизайн-системами.
Поле format применяется для преобразования значений
перед отображением.
"header": {
"format": ".2f"
}
Часто используется для числовых или временных значений.
Управляет отступами между заголовком и графиком.
"header": {
"labelPadding": 8
}
Позволяет улучшить читаемость при плотной компоновке.
Используется для вертикального разбиения:
{
"row": {
"field": "region",
"type": "nominal",
"header": {
"title": "Регион",
"labelAngle": 0
}
}
}
Row header отображается слева от каждой строки графиков.
Используется для горизонтального разбиения:
{
"column": {
"field": "year",
"type": "ordinal",
"header": {
"title": "Год",
"labelAngle": -45
}
}
}
Column header располагается сверху над колонками.
В Vega-Lite существует иерархия настроек:
config.headerrow или columnheader внутри конкретного
фасетаПример глобальной конфигурации:
{
"config": {
"header": {
"labelFontSize": 12,
"labelColor": "#666"
}
}
}
Эти параметры применяются ко всем заголовкам, если не переопределены локально.
header часто путают с другими визуальными
элементами:
title — заголовок всей визуализацииaxis — подписи осей координатheader — подписи групп в фасетной сеткеКлючевое различие заключается в уровне абстракции:
header не относится к координатным осям, а описывает
структуру разбиения данных.
При использовании вложенных фасетов (facet внутри
facet) header управляет несколькими уровнями
группировки.
Пример:
{
"facet": {
"row": {
"field": "continent",
"header": {
"title": "Континент"
}
},
"column": {
"field": "year",
"header": {
"labelAngle": -90
}
}
}
}
Каждый уровень имеет собственный header, что позволяет
строить многомерные сетки визуализаций.
В сложных дашбордах header становится элементом
интерфейсного дизайна. Его настройка влияет на восприятие структуры
данных.
Типовые задачи:
label →
false;labelFont;labelAngle;labelPadding.Если header не задан:
config.Это упрощает быстрые прототипы, но ухудшает контроль над интерфейсом.
В Vega-Lite header рендерится отдельно от основного
графика. Это означает:
Это делает его независимым слоем визуализации.
При динамических данных header часто комбинируется с
трансформациями:
{
"transform": [
{"filter": "datum.value > 10"}
],
"facet": {
"row": {
"field": "group",
"header": {
"labelColor": "steelblue"
}
}
}
}
В таких случаях header помогает визуально выделять
группы после фильтрации или агрегации.
При адаптивной верстке header может:
Эти изменения происходят на уровне движка рендеринга, а не через декларативные настройки.
В Vega header является частью более низкоуровневой
системы и требует ручного управления layout-узлами.
В Vega-Lite он абстрагирован и интегрирован в фасетную модель, что
позволяет задавать его декларативно внутри row и
column без описания layout-логики.
Основное различие:
header