В Vega-Lite поле spacing задаёт расстояние между
отдельными представлениями (views), когда используется компоновка из
нескольких графиков. Речь идёт не о внутреннем отступе внутри одного
графика, а о промежутках между элементами композиции: фасетами,
горизонтальными и вертикальными конкатенациями, а также повторяющимися
панелями.
Ключевая характеристика spacing — глобальное
управление плотностью макета многопанельной визуализации.
Значение задаётся в пикселях и влияет на визуальное разделение графиков
без изменения их внутренних размеров.
При использовании фасетирования данные разбиваются на сетку
подграфиков. Каждый подграфик отображает подмножество данных, а
расстояние между ними регулируется через spacing.
{
"data": {"url": "data.csv"},
"facet": {
"row": {"field": "category", "type": "nominal"}
},
"spec": {
"mark": "bar",
"encoding": {
"x": {"field": "value", "type": "quantitative"}
}
},
"spacing": 20
}
В этом случае spacing: 20 определяет вертикальные
промежутки между строками фасетной сетки.
При горизонтальной и вертикальной конкатенации несколько независимых
графиков размещаются в линию или столбец. Здесь spacing
задаёт расстояние между соседними визуализациями.
{
"hconcat": [
{
"mark": "bar",
"encoding": {
"x": {"field": "a", "type": "quantitative"},
"y": {"field": "b", "type": "quantitative"}
}
},
{
"mark": "line",
"encoding": {
"x": {"field": "a", "type": "quantitative"},
"y": {"field": "c", "type": "quantitative"}
}
}
],
"spacing": 40
}
Значение 40 увеличивает визуальную дистанцию между двумя
графиками, создавая более явное разделение.
При использовании repeat создаётся набор однотипных
графиков, распределённых в сетке. В этом случае spacing
регулирует расстояние между повторяющимися панелями.
{
"repeat": {
"row": ["A", "B", "C"]
},
"spec": {
"mark": "point",
"encoding": {
"x": {"field": "x", "type": "quantitative"},
"y": {"field": {"repeat": "row"}, "type": "quantitative"}
}
},
"spacing": 15
}
| Тип компоновки | Роль spacing |
|---|---|
| facet | расстояние между строками и/или колонками фасетной сетки |
| hconcat | горизонтальный промежуток между графиками |
| vconcat | вертикальный промежуток между графиками |
| repeat | расстояние между повторяющимися элементами |
spacing часто путается с padding, однако
эти параметры регулируют разные уровни структуры.
При увеличении spacing общая площадь визуализации
увеличивается без изменения размеров отдельных графиков. Это приводит
к:
При использовании autosize поведение зависит от
режима:
"pad" — учитывается spacing при расчёте общего
размера"fit" — пространство перераспределяется между
элементами"none" — spacing может привести к выходу за пределы
контейнераЕсли spacing не указан:
В сложных спецификациях, где используются вложенные
facet и concat, spacing
применяется на каждом уровне отдельно.
{
"facet": {
"row": {"field": "group", "type": "nominal"}
},
"spec": {
"hconcat": [
{
"mark": "bar",
"encoding": {
"x": {"field": "x", "type": "quantitative"},
"y": {"field": "y", "type": "quantitative"}
}
},
{
"mark": "area",
"encoding": {
"x": {"field": "x", "type": "quantitative"},
"y": {"field": "z", "type": "quantitative"}
}
}
],
"spacing": 25
},
"spacing": 30
}
Здесь:
spacing: 30 управляет расстоянием между
фасетными строкамиspacing: 25 управляет расстоянием между
графиками внутри каждой строкиУвеличение spacing используется для формирования визуальных групп:
При фасетировании в виде сетки (row × column):
spacing, он может применяться к обоим
направлениям симметричноspacing не влияет на оси и легенды внутри графиковpadding и не дублирует его
функциональностьВ адаптивных контейнерах увеличение spacing может
приводить к:
В композициях типа дашбордов spacing выступает
инструментом:
Часто используется вместе с минимальными padding для
создания плотных аналитических сеток или с увеличенными значениями для
презентационных макетов.