В Vega-Lite управление делениями осей и отдельными рисками (ticks)
строится через несколько уровней абстракции: конфигурацию оси (axis),
параметры масштаба (scale) и специальный графический маркер
tick. Несмотря на общую терминологию, эти механизмы решают
разные задачи — от разметки шкалы до отрисовки отдельных штрихов внутри
визуализации.
Деления оси выполняют две ключевые функции:
В Vega-Lite деления не являются самостоятельным «полем данных», а представляют собой результат работы осевого компонента, который автоматически вычисляет позиции tick-меток на основе шкалы.
Основной механизм управления делениями реализуется через свойство
axis. Оно задаётся внутри encoding канала:
{
mark: "bar",
encoding: {
x: { field: "category", type: "ordinal", axis: { ticks: true } },
y: { field: "value", type: "quantitative" }
}
}
Ключевое свойство:
Пример отключения:
axis: {
ticks: false
}
Отключение tick-рисок оставляет только подписи или полностью упрощает
ось при комбинировании с labels: false.
Количество и плотность делений контролируется автоматически, но может быть переопределено.
axis: {
tickCount: 5
}
Задает ориентировочное число делений. Vega-Lite может корректировать его в зависимости от диапазона данных и алгоритма округления шкалы.
axis: {
tickMinStep: 10
}
Минимальный шаг между делениями. Используется для предотвращения «переполнения» оси при плотных данных.
Параметр отвечает за длину рисок:
axis: {
tickSize: 8
}
Глобально:
config: {
axis: {
tickSize: 6
}
}
Локально (для конкретной оси):
axis: {
tickSize: 12
}
Vega-Lite автоматически определяет ориентацию tick-рисок в зависимости от направления оси:
Однако возможна ручная настройка через дополнительные параметры оси и маркеров.
axis: {
tickColor: "#999",
tickOpacity: 0.6
}
Эти параметры влияют на визуальную иерархию между делениями, сеткой и подписями.
axis: {
tickWidth: 1.5
}
Толщина позволяет согласовать деления с общей графической сеткой.
Деления оси напрямую зависят от типа шкалы:
scale: {
type: "log"
}
Отдельно от осевых делений существует графический маркер
tick, используемый для отображения «рисок данных» внутри
визуализации.
{
mark: "tick",
encoding: {
x: { field: "value", type: "quantitative" }
}
}
Этот маркер применяется для:
{
mark: {
type: "tick",
size: 20
}
}
size управляет длиной риски;{
mark: {
type: "tick",
thickness: 2,
color: "steelblue"
}
}
Толщина позволяет отличать группы данных или категории при наложении нескольких наборов tick-значений.
Маркер tick часто применяется в сочетании с:
Пример комбинированного подхода:
{
layer: [
{
mark: "bar",
encoding: {
x: { field: "group", type: "ordinal" },
y: { aggregate: "mean", field: "value" }
}
},
{
mark: "tick",
encoding: {
x: { field: "group" },
y: { field: "value" }
}
}
]
}
При проектировании визуализаций важен баланс между:
Типичные режимы:
tickCount: 3–5tickSizetickCount: 10–20tickSizetickStepTick-деления часто визуально связаны с grid-линиями:
axis: {
grid: true,
tickSize: 5,
gridColor: "#eee"
}
Vega-Lite позволяет централизованно управлять ticks через config:
config: {
axis: {
tickCount: 6,
tickSize: 6,
tickColor: "#aaa"
}
}
Это особенно важно при построении серий графиков с единым визуальным стилем.
В сложных визуализациях одновременно используются:
Их различие принципиально:
Такое разделение позволяет строить графики, где шкала и наблюдения визуально сосуществуют, не конфликтуя по смыслу и плотности.