Три типа палитр: последовательная, расходящаяся, категориальная
Тип палитры обязан соответствовать типу данных — иначе цвет лжёт о структуре.
Цветовые палитры делятся на три типа по структуре данных: последовательная (для упорядоченных величин от мало к много), расходящаяся (для отклонений от значимого центра в обе стороны) и категориальная (для несравнимых групп).
Палитра кодирует структуру данных
Выбор палитры — не вопрос вкуса. Каждый тип данных имеет структуру, и палитра должна её отражать. Неправильная палитра выдумывает структуру, которой нет, или прячет существующую.
| Тип палитры | Структура данных | Пример | Как устроена |
| Последовательная | упорядоченная, один конец «больше» | температура, плотность, высота | светлота монотонно растёт |
| Расходящаяся | отклонение от центра в обе стороны | корреляция (−1..+1), аномалия | два цвета, нейтраль в центре |
| Категориальная | несравнимые группы | страны, виды, эксперименты | разные оттенки, равная светлота |
Последовательная: от светлого к тёмному
Для упорядоченной величины (чем больше, тем «сильнее») нужна палитра, где главный сигнал несёт светлота: монотонно от светлого к тёмному (или наоборот). Тогда даже без цвета, в оттенках серого, порядок читается. Примеры: viridis, оттенки одного цвета (Blues, Reds). Светлота — то, что глаз воспринимает как «величину».
Расходящаяся: центр имеет смысл
Когда у данных есть осмысленный центр (ноль для корреляции, норма для аномалии температуры), и отклонения в обе стороны равноценны, нужна расходящаяся палитра: два контрастных цвета (например, синий–красный) с нейтральным белым в центре. Критично: центр палитры обязан совпадать с центром данных. Если корреляция от $-1$ до $+1$, белый должен быть на нуле, иначе график соврёт о знаке.
Категориальная: разные, но равные
Для групп без порядка (виды, страны) нужны различимые оттенки примерно равной светлоты — чтобы ни одна категория не казалась «главнее» из-за того, что темнее. Здесь нельзя брать последовательную палитру: она навяжет ложный порядок. И помните правило из урока про восприятие — не больше 6–8 категорий.
Проверим монотонность светлоты
Оценим воспринимаемую яркость (luminance) для последовательной палитры по формуле $L = 0{,}299R + 0{,}587G + 0{,}114B$ — она должна расти монотонно.
def luminance(rgb):
r, g, b = rgb
return round(0.299*r + 0.587*g + 0.114*b, 1)
# хорошая последовательная палитра (светлота растёт)
seq = [(247,251,255),(198,219,239),(107,174,214),(33,113,181),(8,48,107)]
print("последовательная (светлота должна убывать монотонно):")
prev = None
mono = True
for c in seq:
L = luminance(c)
flag = ""
if prev is not None and L > prev:
flag = " <- НАРУШЕНИЕ монотонности"; mono = False
print(" rgb", c, "L =", L, flag)
prev = L
print("монотонно по светлоте:", mono)Вывод:
последовательная (светлота должна убывать монотонно): rgb (247, 251, 255) L = 250.3 rgb (198, 219, 239) L = 215.0 rgb (107, 174, 214) L = 158.5 rgb (33, 113, 181) L = 96.8 rgb (8, 48, 107) L = 42.8 монотонно по светлоте: True
Светлота убывает на каждом шаге — палитра корректно кодирует порядок одной только яркостью.
Как работает под капотом
Глаз воспринимает светлоту куда точнее, чем оттенок: канал яркости в зрительной системе имеет высокое разрешение, а цветовые каналы — низкое. Поэтому упорядоченную величину надо вести по светлоте (последовательная палитра), а оттенок использовать для различения групп (категориальная). Расходящаяся палитра эксплуатирует то, что два цвета по краям воспринимаются как «противоположности» относительно нейтрального центра.
ColorBrewer и готовые палитры
Не нужно изобретать палитры самому — есть проверенные наборы. Синтия Брюер, картограф, создала ColorBrewer: коллекцию палитр, разработанных для карт и научной графики, с разбивкой ровно по трём типам (sequential, diverging, qualitative) и пометками, какие из них дружелюбны к дальтонизму и переживают чёрно-белую печать. Эти палитры встроены в большинство библиотек визуализации. Для последовательных данных также прекрасно работает семейство viridis, а для категорий — палитра Okabe–Ito, специально подобранная под все типы дальтонизма.
Практическое правило: определите тип ваших данных (упорядоченные? с центром? категории?) и возьмите готовую палитру нужного типа из ColorBrewer или viridis-семейства. Это сэкономит время и убережёт от типичных ошибок — немонотонной светлоты, неразличимых для дальтоников пар, цветов, сливающихся при печати. Самостоятельный подбор цветов «на глаз» почти всегда проигрывает этим тщательно выверенным наборам.
Частые ошибки
- Категориальная палитра для упорядоченных данных — теряется порядок, цвета кажутся случайными.
- Последовательная для категорий — навязывает ложный порядок и «главную» группу.
- Центр расходящейся палитры не на центре данных — график врёт о знаке отклонения.
- Немонотонная светлота в последовательной палитре (привет, радуга) — порядок не читается.
Итог
- Три типа палитр: последовательная, расходящаяся, категориальная.
- Тип палитры должен соответствовать структуре данных.
- Упорядоченную величину ведите по светлоте.
- В расходящейся палитре центр обязан совпадать с центром данных.