В спецификациях Vega и Vega-Lite управление внешним видом
визуализации часто начинается не с графиков и шкал, а с базовой
геометрии холста и его окружения. Ключевую роль в этом уровне играют два
параметра: background и padding, определяющие
визуальную рамку и внутренние отступы сцены.
Поле background задаёт цвет или стиль фона всего
визуального контейнера. Это не область данных и не часть координатной
системы, а именно внешний слой, на котором размещается визуализация.
В Vega-Lite параметр background может задаваться на
уровне спецификации и применяется ко всей диаграмме целиком.
В Vega аналогичная настройка может находиться в конфигурации
(config.background) и влияет на весь render view.
Если background не задан, используется значение по
умолчанию (обычно прозрачный фон или цвет, заданный контейнером
HTML/CSS).
Простейшее определение:
{
"background": "#ffffff"
}
или в Vega-Lite:
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"background": "#f5f5f5",
"data": { "values": [10, 20, 30] },
"mark": "bar",
"encoding": {
"x": { "field": "value", "type": "quantitative" }
}
}
background не влияет на:
Он влияет только на:
В Vega различаются несколько уровней визуального фона:
Пример конфигурационного уровня:
{
"config": {
"background": "#1e1e1e"
}
}
Значение null или отсутствие background
позволяет интегрировать график в существующую верстку:
{
"background": null
}
Это часто используется при:
padding определяет расстояние между границей визуального
холста и областью построения графика (plot area). Это один из ключевых
параметров компоновки.
В отличие от background, который задаёт внешний слой,
padding управляет внутренней геометрией макета.
Единое значение применяется ко всем сторонам:
{
"padding": 20
}
Эквивалентно:
{
"padding": {
"top": 20,
"bottom": 20,
"left": 20,
"right": 20
}
}
Позволяет точно управлять каждой стороной:
{
"padding": {
"top": 10,
"bottom": 30,
"left": 40,
"right": 40
}
}
Внутренние отступы влияют на:
Алгоритмически:
available_width = width - padding.left - padding.right
available_height = height - padding.top - padding.bottom
В Vega и Vega-Lite система autosize тесно связана с
padding.
Пример:
{
"width": 400,
"height": 300,
"padding": 50,
"autosize": "pad"
}
Режим pad учитывает padding как фиксированную часть
макета.
Другие режимы:
fit — масштабирует содержимое под доступную
областьnone — игнорирует автоматическую подгонкуpad — сохраняет отступыПри увеличении padding:
При уменьшении padding:
{
"background": "#ffffff",
"padding": 5,
"data": { "values": [{"a": "A", "b": 28}, {"a": "B", "b": 55}] },
"mark": "bar",
"encoding": {
"x": { "field": "a", "type": "nominal" },
"y": { "field": "b", "type": "quantitative" }
}
}
И вариант с увеличенными отступами:
{
"background": "#ffffff",
"padding": 40
}
Разница проявляется не в данных, а в композиции: оси и бары получают больше пространства и перестают «прилипать» к краям.
Визуальная область можно представить слоями:
Используется для отчётных графиков:
{
"background": "#ffffff",
"padding": 60
}
Даёт строгую визуальную структуру и читаемость.
Используется для UI-встраивания:
{
"background": null,
"padding": 10
}
Позволяет графику “вписываться” в интерфейс.
Используется в аналитических панелях:
{
"background": "#1a1a1a",
"padding": 30
}
Padding компенсирует визуальную плотность тёмной темы.
В Vega padding и background чаще задаются
через config:
{
"config": {
"background": "#f0f0f0",
"padding": 20
}
}
Vega интерпретирует это на уровне runtime layout engine:
Результат — обрезанные тексты и пересечение элементов с краями холста.
Приводит к деградации полезной области визуализации:
background не предназначен для стилизации данных. Для
этого используются:
mark.fillmark.strokeencoding.color{
"background": "#ffffff",
"padding": 24
}
Характеризуется балансом плотности и читаемости.
{
"background": "transparent",
"padding": 0
}
Используется внутри таблиц и карточек.
{
"background": "#000000",
"padding": 80
}
Акцент на изоляции графика от окружения.
Связь параметров можно формализовать так:
background определяет внешний визуальный контейнерpadding определяет внутреннюю геометрию области
отрисовкиЭти параметры формируют фундамент визуального пространства, на котором далее строится вся логика визуализации в Vega и Vega-Lite.