В системах визуализации данных 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 вычисляет его автоматически
на основе данных.
Алгоритм:
- сортировка значений;
- вычисление квантилей;
- формирование границ групп.
Использование в
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.
Их выбор влияет не только на цвет, но и на интерпретацию структуры
данных в целом.