Короткий ответ
Человеку сложно одновременно различать много дискретных оттенков; для категориальных данных нужна ограниченная качественная палитра (не более 6–8 цветов), а для непрерывных упорядоченных данных — последовательный или расходящийся градиент, а не «радуга» из несвязанных оттенков.
Как это работает подробнее
Качественные палитры используют разные оттенки для неупорядоченных категорий; последовательные палитры меняют яркость одного оттенка для упорядоченных числовых данных; расходящиеся палитры используют два оттенка вокруг нейтральной середины для данных со значимым нулём/центром.
Пример кода
example.py
import seaborn as sns
sns.set_palette("colorblind") # ограниченная и доступная качественная палитра
# для градиента: sns.color_palette("viridis", as_cmap=True) вместо "jet"/rainbowЧто использовать на практике
- Рекомендация. Объединяйте мелкие категории в «Прочее», чтобы ограничить число цветов.
- Рекомендация. Используйте палитры, безопасные для дальтоников (например, ColorBrewer).
- Рекомендация. Сохраняйте одинаковый цвет для одной категории на разных графиках одного дашборда.
Подводные камни
- Риск. Использование «радужной» colormap по умолчанию для непрерывных данных (перцептивно неравномерна, искажает восприятие величины).
- Риск. Сочетание только красного и зелёного без дополнительного визуального признака (около 8% мужчин не различают эти цвета).
- Риск. Разные цвета для одной и той же категории на разных графиках дашборда.