Шкала quantize и quantile для цвета

В системах визуализации данных Vega и Vega-Lite цветовые шкалы играют ключевую роль в преобразовании числовых данных в визуальные атрибуты. Среди дискретных шкал особое значение имеют quantize и quantile, поскольку они позволяют преобразовать непрерывные данные в ограниченное число цветовых категорий.

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


Основы дискретных цветовых шкал

Дискретные шкалы применяются тогда, когда:

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

В Vega-Lite такие шкалы задаются через параметр:

"scale": {
  "type": "quantize" | "quantile"
}

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


Шкала quantize: равномерное деление диапазона

Принцип работы

Шкала quantize делит весь числовой диапазон данных на равные интервалы по значению. Количество интервалов фиксируется заранее (например, 5 цветов — 5 равных диапазонов).

Формально:

  • берётся минимум и максимум данных;
  • диапазон делится на N равных частей;
  • каждое значение попадает в один из интервалов.

Поведение на данных

Если данные распределены неравномерно, quantize не учитывает плотность значений. Это приводит к:

  • возможной перегрузке одного интервала;
  • пустым или малонасыщенным диапазонам;
  • стабильному и предсказуемому разбиению.

Пример Vega-Lite

{
  "mark": "rect",
  "encoding": {
    "color": {
      "field": "value",
      "type": "quantitative",
      "scale": {
        "type": "quantize",
        "domain": [0, 100],
        "range": ["#d4eac7", "#a8d08d", "#70ad47", "#38761d", "#274e13"]
      }
    }
  }
}

Особенности quantize

  • интервал всегда равномерный;
  • количество категорий задаётся явно через range;
  • простая интерпретация границ;
  • не зависит от распределения данных.

Когда применять quantize

Подходит в случаях:

  • равномерно распределённых данных;
  • необходимости строгих порогов (например, температура, уровни риска);
  • визуализации инженерных и физических параметров;
  • требовании детерминированных границ классов.

Шкала quantile: разбиение по распределению

Принцип работы

Шкала quantile делит данные не по равным интервалам значений, а по равным группам наблюдений.

Идея:

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

Поведение на данных

В отличие от quantize, quantile:

  • учитывает распределение данных;
  • адаптируется к плотности значений;
  • обеспечивает равное количество элементов в каждом классе.

Например, при 100 значениях и 5 цветах каждая группа будет содержать примерно 20 значений.


Пример Vega-Lite

{
  "mark": "rect",
  "encoding": {
    "color": {
      "field": "value",
      "type": "quantitative",
      "scale": {
        "type": "quantile",
        "domain": [0, 100],
        "range": ["#f7fbff", "#c6dbef", "#6baed6", "#2171b5", "#08306b"]
      }
    }
  }
}

Особенности quantile

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

Когда применять quantile

Используется при:

  • сильно скошенных распределениях;
  • анализе социальных, экономических данных;
  • необходимости равномерного распределения объектов по категориям;
  • картограммах и choropleth-визуализациях.

Сравнение quantize и quantile

Поведение интервалов

  • quantize: равные интервалы значений
  • quantile: равные группы наблюдений

Зависимость от данных

  • quantize: не зависит от распределения
  • quantile: полностью зависит от распределения

Интерпретация

  • quantize: проще объяснить границы
  • quantile: сложнее интерпретировать числовые пороги

Визуальный эффект

  • quantize: может усиливать пустоты в данных
  • quantile: сглаживает визуальную нагрузку

Поведение domain и расчет границ

В quantize

Если domain задан явно:

"domain": [min, max]

интервал вычисляется как:

step = (max - min) / n

где n — количество цветов.


В quantile

Если domain не задан, Vega вычисляет его автоматически на основе данных.

Алгоритм:

  1. сортировка значений;
  2. вычисление квантилей;
  3. формирование границ групп.

Использование в Vega-Lite с трансформациями

Часто quantile используется совместно с агрегацией:

{
  "transform": [
    {
      "aggregate": [{"op": "mean", "field": "value", "as": "avg"}],
      "groupby": ["category"]
    }
  ],
  "mark": "rect",
  "encoding": {
    "color": {
      "field": "avg",
      "type": "quantitative",
      "scale": {
        "type": "quantile",
        "range": ["#edf8fb", "#b3cde3", "#8c96c6", "#8856a7", "#810f7c"]
      }
    }
  }
}

Влияние числа цветов

Количество цветов напрямую влияет на поведение обеих шкал.

При увеличении числа категорий:

  • quantize: уменьшается ширина интервалов;
  • quantile: уменьшается размер групп наблюдений.

Практическое ограничение

При большом числе цветов:

  • ухудшается различимость оттенков;
  • возрастает когнитивная нагрузка;
  • снижается читаемость легенды.

Работа с легендой

В Vega-Lite легенда автоматически адаптируется под тип шкалы.

quantize:

  • отображает числовые диапазоны;
  • границы фиксированы.

quantile:

  • отображает статистически вычисленные пороги;
  • интервалы могут выглядеть неравномерными.

Типичные ошибки при использовании

1. Использование quantize для skewed data

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


2. Использование quantile для интерпретируемых порогов

Если важны реальные пороговые значения (например, температура), quantile искажает смысл интервалов.


3. Малое количество данных

При малом объёме:

  • quantile может давать нестабильные границы;
  • quantize может выглядеть излишне грубо.

Рекомендации по выбору

  • стабильные пороги → quantize
  • анализ распределения → quantile
  • инженерные метрики → quantize
  • социальные и статистические данные → quantile

Взаимодействие с другими типами шкал

В Vega-Lite quantize и quantile часто сравниваются с:

  • linear — непрерывная шкала;
  • log — логарифмическое преобразование;
  • threshold — ручные границы.

В отличие от threshold, обе рассматриваемые шкалы вычисляют границы автоматически, снижая необходимость ручной настройки.


Цветовые палитры и восприятие

При работе с quantize и quantile критично выбирать палитры:

  • последовательные (sequential);
  • монотонные по яркости;
  • без резких скачков контраста.

Пример плохого выбора — радужные палитры, которые искажают восприятие градаций.


Поведение при обновлении данных

quantize

  • пересчёт минимален;
  • стабильные границы при фиксированном domain.

quantile

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

Интеграция в сложные визуализации

В сложных спецификациях Vega-Lite обе шкалы часто применяются в:

  • heatmap;
  • choropleth maps;
  • density grids;
  • clustered bar charts.

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