Тип rule

Семантика и назначение

Mark rule в Vega-Lite представляет собой геометрический примитив для отображения линейных элементов в декартовой системе координат. В отличие от точек (point) или областей (area), rule не описывает дискретные наблюдения, а фиксирует линейные связи, ориентиры и справочные значения.

В контексте Vega данный mark является базовым графическим примитивом низкого уровня, который интерпретируется как отрезок, заданный двумя точками в координатной плоскости.

Ключевая особенность rule заключается в том, что он:

  • не зависит от формы данных как категории,
  • опирается на координатные пары,
  • часто используется как вспомогательный слой поверх других визуализаций.

Геометрическая модель

rule описывается через две опорные точки:

  • (x, y)
  • (x2, y2)

Либо через частичное определение, где одна из координат фиксируется автоматически.

Таким образом, rule можно интерпретировать как:

  • горизонтальную линию (y = const),
  • вертикальную линию (x = const),
  • произвольный отрезок в 2D-пространстве.

В терминах визуальной грамматики это делает mark универсальным инструментом построения линейных аннотаций.


Основные каналы данных

Для построения rule используются следующие encoding channels:

x и x2

Определяют начальную и конечную позицию по оси X.

  • x: стартовая координата
  • x2: конечная координата

Если задан только x, а y фиксирован, формируется вертикальная линия.

y и y2

Аналогично для оси Y:

  • y: старт
  • y2: конец

При наличии только y получается горизонтальная линия.

color

Определяет цвет линии. Часто используется для выделения:

  • порогов,
  • средних значений,
  • диапазонов.

strokeWidth

Толщина линии, критически важна для семантического веса:

  • тонкие линии — вспомогательные ориентиры,
  • толстые — ключевые границы или уровни.

opacity

Позволяет интегрировать rule в плотные графики без визуального конфликта с основными mark-слоями.


Поведение в системе координат

rule наследует все свойства системы координат:

  • линейные и логарифмические шкалы,
  • трансформации масштаба,
  • инверсию осей,
  • панорамирование и зум (в интерактивных спецификациях).

При этом координаты x, y, x2, y2 всегда интерпретируются в пространстве после применения шкал (scales).


Типовые сценарии применения

Горизонтальные справочные линии

Частый случай — отображение фиксированных уровней:

  • среднее значение
  • медиана
  • пороговое значение
  • SLA/лимиты

Пример логики:

  • y = mean(value)
  • x = 0, x2 = width

Вертикальные маркеры событий

Используются для обозначения событий во времени:

  • релизы,
  • аномалии,
  • изменения политики данных,
  • ключевые точки эксперимента.

Здесь фиксируется x, а линия тянется по y.


Линии диапазона

rule может описывать не только бесконечные ориентиры, но и конечные отрезки:

  • доверительные интервалы,
  • min/max диапазоны,
  • границы сегментов.

Аггрегации и вычисляемые линии

В Vega-Lite rule часто комбинируется с трансформациями данных:

  • aggregate
  • calculate
  • joinaggregate

Это позволяет строить статистические линии без предварительной подготовки данных.

Типичный паттерн:

  • вычисление среднего значения,
  • наложение rule поверх scatter/line графика,
  • использование результата агрегации как координаты.

Пример базовой спецификации

{
  "mark": "rule",
  "encoding": {
    "y": { "value": 50 },
    "x": { "value": 0 },
    "x2": { "value": 400 },
    "color": { "value": "red" },
    "strokeWidth": { "value": 2 }
  }
}

Здесь формируется горизонтальная линия, фиксированная на уровне y = 50.


Пример с агрегацией

{
  "mark": "rule",
  "encoding": {
    "y": {
      "aggregate": "mean",
      "field": "value"
    },
    "x": { "value": 0 },
    "x2": { "value": 400 },
    "color": { "value": "black" }
  }
}

Линия автоматически вычисляется как среднее значение поля value.


Интеграция с другими mark-слоями

rule практически всегда используется в layered-архитектуре:

  • слой 1: scatter / line / bar
  • слой 2: rule (reference lines)
  • слой 3: text (подписи значений)

Такой подход обеспечивает разделение:

  • данных наблюдений,
  • аналитических ориентиров,
  • аннотаций.

Поведение при масштабировании

При изменении размеров графика:

  • длина rule, заданная через x2/y2, пересчитывается через scales,
  • фиксированные значения через value остаются в пиксельной системе координат.

Это создаёт два режима:

  • data-driven rule (через encoding)
  • screen-space rule (через value)

Визуальная роль в аналитических графиках

rule выполняет функцию структурного каркаса визуализации:

  • задаёт опорные уровни,
  • формирует сетку интерпретации данных,
  • усиливает читаемость распределений.

В плотных диаграммах именно rule часто определяет, как пользователь интерпретирует числовую ось, даже если она не явно подписана.


Ограничения и особенности поведения

Несмотря на универсальность, rule имеет ряд архитектурных особенностей:

  • не поддерживает сложную геометрию (только отрезки),
  • не предназначен для кривых или нелинейных форм,
  • не содержит внутренней топологии (в отличие от area или line),
  • интерпретируется исключительно как графический примитив без семантики данных.

Эти ограничения делают его предсказуемым и стабильным элементом визуальной системы.


Роль в декларативной модели Vega-Lite

В декларативной парадигме mark rule выступает как:

  • способ выразить геометрию без процедурной логики,
  • инструмент наложения аналитических смыслов поверх данных,
  • элемент композиции визуальных слоёв.

В отличие от императивного рисования, где линия создаётся через последовательность команд, здесь она описывается через связь данных и координат, что обеспечивает согласованность с остальной визуализацией.