Каналы angle и radius для радиальных диаграмм

Радиальные визуализации в декларативных системах описания графиков строятся вокруг полярной системы координат, в которой каждое наблюдение задаётся через два ключевых измерения: угловую координату и радиальную дистанцию от центра. В контексте Vega и Vega-Lite эти измерения представлены каналами angle и radius, которые заменяют традиционные x и y в декартовой системе.

Полярная система координат в Vega и Vega-Lite не является отдельным типом графика, а задаётся через комбинацию масштабов (scales), координатной системы (coordinate system) и привязки каналов данных. Каналы angle и radius формируют фундамент радиальных диаграмм, включая круговые диаграммы, радиальные гистограммы, розы направлений и радиальные временные шкалы.

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

В Vega-Lite angle чаще всего используется вместе с круговой или дуговой геометрией mark типа arc. В Vega он может быть связан напрямую с трансформацией координат или с параметрами генераторов дуг.

Ключевые свойства канала angle:

  • Начальная точка отсчёта: угол 0 может соответствовать произвольному направлению (обычно вправо по оси X или вверх по оси Y в зависимости от системы координат).
  • Направление роста угла: положительное направление может быть по часовой или против часовой стрелки.
  • Масштабирование: числовые значения данных отображаются в диапазон углов, например от 0 до 2π или от 0 до 360 градусов.
  • Сегментация окружности: при построении круговых диаграмм каждый элемент получает собственный угловой сектор.

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

  • сумма значений → полный угол окружности
  • отдельное значение → доля угла

Таким образом angle становится функцией распределения, а не просто координатой.

В Vega-Lite часто применяется следующая логика: поле данных через агрегат sum преобразуется в угол посредством scale с доменом [0, total] и диапазоном [0, 2π].

Канал radius: радиальное расстояние

Канал radius определяет расстояние от центра полярной системы координат до точки отображения. Он задаёт «высоту» или «длину» в радиальном направлении.

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

Свойства канала radius:

  • Минимальное значение соответствует центру окружности.
  • Максимальное значение соответствует внешнему радиусу визуализации.
  • Линейное или логарифмическое масштабирование влияет на восприятие распределения данных.
  • Использование для вложенных структур позволяет строить многослойные радиальные диаграммы.

В радиальных гистограммах radius часто отражает частоту или агрегированное значение, тогда как angle распределяет категории по окружности. В результате каждая «долька» может иметь переменную длину, формируя неравномерное кольцо.

Совместная работа angle и radius

Сочетание angle и radius формирует полную полярную координатную систему:

  • angle задаёт направление
  • radius задаёт длину в этом направлении

Каждая точка данных преобразуется из исходного значения в пару (θ, r), где:

  • θ ∈ [0, 2π]
  • r ∈ [r_min, r_max]

В Vega-Lite это часто реализуется через трансформацию stack для накопления углов и scale для радиуса.

При построении сложных диаграмм используется разбиение на несколько уровней:

  1. вычисление агрегатов данных
  2. нормализация значений
  3. преобразование в угловые интервалы
  4. вычисление радиальных величин
  5. отрисовка через mark arc или аналогичные примитивы

Применение в круговых диаграммах

Классическая круговая диаграмма использует только angle как основной канал, в то время как radius остаётся фиксированным.

Однако в расширенной версии, называемой «кольцевой диаграммой с толщиной», radius становится вторым измерением:

  • innerRadius задаёт внутренний радиус
  • outerRadius задаёт внешний радиус
  • angle определяет сектор
  • разница между радиусами формирует толщину сегмента

Такое представление позволяет визуализировать дополнительные измерения, например вторую метрику или уровень иерархии.

Радиальные гистограммы

В радиальной гистограмме оба канала используются одновременно:

  • angle делит окружность на равные или категориальные сегменты
  • radius отображает величину частоты

При этом каждый сектор может иметь переменную длину, создавая эффект «лучей», исходящих из центра.

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

Нормализация и масштабирование

Для корректного отображения данных в радиальной системе координат применяются масштабные преобразования:

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

Для angle масштаб всегда ограничен кругом, что требует нормализации:

  • доля = значение / сумма
  • угол = доля × 2π

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

Геометрия дуг и вычисление координат

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

  • startAngle
  • endAngle
  • innerRadius
  • outerRadius

Эти параметры вычисляются из исходных данных через каналы angle и radius. Затем происходит преобразование в декартову систему координат для рендеринга:

  • x = r × cos(θ)
  • y = r × sin(θ)

Таким образом angle и radius являются промежуточным слоем абстракции между данными и конечной графической примитивной моделью.

Многомерные радиальные структуры

Использование angle и radius не ограничивается двумерными диаграммами. В сложных визуализациях возможно наложение нескольких радиальных слоёв:

  • внутренний слой — базовые категории
  • внешний слой — подкатегории или дополнительные метрики
  • радиус как ось глубины

В таких структурах radius перестаёт быть просто расстоянием и превращается в ось иерархии или временного измерения.

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

Полярные координаты обладают специфическими особенностями интерпретации:

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

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