Сетка является одним из базовых визуальных элементов в спецификации
Vega и Vega-Lite. Она определяет линии координатной системы, которые
помогают пользователю ориентироваться в значениях графика, считывать
величины и сопоставлять данные. В Vega сетка настраивается через объект
осей (axis), а свойства grid и gridDash
отвечают за её отображение и визуальный стиль.
Сетка не является данными, она представляет собой вспомогательную графическую структуру, накладываемую на координатное пространство. Её основная функция — повышение читаемости графика.
Ключевые задачи сетки:
В Vega-Lite сетка может быть включена отдельно для каждой оси:
x и y.
gridПараметр grid управляет отображением линий сетки вдоль
конкретной оси.
По умолчанию сетка включается для одной из осей (обычно для
y), если тип визуализации предполагает количественные
данные. Это поведение можно переопределить.
{
"mark": "line",
"encoding": {
"x": { "field": "date", "type": "temporal" },
"y": { "field": "value", "type": "quantitative" }
},
"axis": {
"y": {
"grid": true
}
}
}
Здесь grid: true явно включает горизонтальные линии
сетки.
Отключение сетки выполняется установкой значения
false.
{
"axis": {
"x": {
"grid": false
},
"y": {
"grid": false
}
}
}
Отключение сетки часто применяется в следующих случаях:
Сетка автоматически привязывается к делениям оси (ticks). Частота
линий зависит от масштаба данных и параметров шкалы
(scale).
В Vega-Lite прямого контроля над количеством линий через
grid нет, но косвенно это регулируется:
tickCount — число делений;nice — округление шкалы;domain — ручное определение диапазона.{
"axis": {
"y": {
"grid": true,
"tickCount": 5
}
}
}
При логарифмических шкалах (scale: { type: "log" })
сетка становится особенно важной, поскольку расстояния между значениями
нелинейны. В этом случае линии сетки помогают визуально интерпретировать
порядок величин.
gridDashgridDash определяет стиль линий сетки, задавая их
пунктирность. Это свойство влияет только на визуальное оформление, не
затрагивая структуру данных или осей.
gridDash задаётся как массив чисел:
"gridDash": [dash, gap]
Где:
dash — длина видимой части линии;gap — длина промежутка между сегментами.{
"axis": {
"y": {
"grid": true,
"gridDash": [4, 2]
}
}
}
В этом случае каждая линия сетки состоит из повторяющихся отрезков:
Различные комбинации позволяют создавать разные визуальные эффекты:
"gridDash": [2, 2]
Используется для лёгкой, почти незаметной сетки, которая не конкурирует с данными.
"gridDash": [6, 3]
Подходит для графиков с высокой плотностью данных, где требуется более явное разделение уровней.
"gridDash": [1, 3]
Создаёт минималистичную, «воздушную» сетку, часто используемую в интерфейсных графиках.
gridDash редко используется отдельно. Обычно он
комбинируется с параметрами:
gridColor — цвет линий сетки;gridOpacity — прозрачность;gridWidth — толщина линий.{
"axis": {
"y": {
"grid": true,
"gridDash": [4, 2],
"gridColor": "#d0d0d0",
"gridOpacity": 0.5
}
}
}
Такое сочетание позволяет снизить визуальный шум при сохранении функциональности сетки.
Правильная настройка grid и gridDash влияет
на когнитивную нагрузку пользователя.
Преимущества:
Недостатки:
Преимущества:
Недостатки:
Использование gridDash позволяет найти баланс:
Наиболее частый сценарий использования сетки. Здесь она служит основным ориентиром для интерпретации значений.
Сетка помогает сравнивать высоту столбцов относительно оси Y, особенно при большом количестве категорий.
Сетка критична для оценки распределения точек в пространстве, особенно при анализе корреляций.
В Vega-Lite сетка может задаваться:
config.axis;encoding.axis.Локальные настройки всегда имеют приоритет.
{
"config": {
"axis": {
"grid": true,
"gridDash": [2, 2]
}
},
"encoding": {
"y": {
"axis": {
"grid": false
}
}
}
}
В данном случае:
"axis": {
"y": {
"grid": true,
"gridDash": [1, 4],
"gridOpacity": 0.2
}
}
"axis": {
"y": {
"grid": true,
"gridDash": [4, 2],
"gridColor": "#999",
"gridWidth": 1
}
}
"axis": {
"x": {
"grid": true,
"gridDash": [3, 3]
},
"y": {
"grid": true,
"gridDash": [3, 3]
}
}
В Vega тема может переопределять дефолтные значения сетки. Это особенно важно в системах с переключаемыми режимами интерфейса.
Например:
gridDash при этом остаётся неизменным, но его эффект
визуально зависит от контраста с фоном.
gridDash не поддерживается для всех типов рендереров
одинаково идеально;[1,1,1,1])
ухудшают читаемость;С точки зрения архитектуры Vega, сетка является частью слоя axis components, а не mark layer. Это означает:
gridDash является чисто презентационным параметром,
работающим на уровне визуального рендера SVG или Canvas.