Мне нужен большой набор (20 и более) контрастных и легко визуально различимых цветов для окрашивания разных наборов данных на научном графике (набор цветов не должен включать белый или черный, а цвета должны быть максимально яркими).
Сюжет генерируется программно и предназначен для включения в презентацию, которая будет отображаться с помощью проектора.
Есть ли готовые наборы цветов для такой задачи (мне нужны цвета как набор значений RGB)?
Или, может быть, есть какой-то алгоритм, который программно генерирует такой набор цветов (я использую Wolfram Mathematica для построения графиков)?
PS Сам сюжет может выглядеть, например, примерно так:
Благодаря отличной работе
(и пользователю ohadsc , который на это сослался !) теперь я знаю как минимум 3 готовых набора цветов максимальной контрастности, содержащих не менее 20 цветов (но у меня все еще есть явные значения RBG только для одного из них):
1) Набор из 22 цветов максимальной контрастности, предложенный Кеннетом Келли в работе:
К. Келли (1965): Двадцать два цвета максимальной контрастности. // Цветная техника, 3(6)
Конкретика (со ссылкой на П. Грин-Армитэджа): «Порядок цветов в списке Келли был спланирован таким образом, чтобы был максимальный контраст между цветами в наборе, если необходимое количество цветов всегда выбиралось по порядку сверху. <.. .> Келли позаботился о потребностях людей с нарушенным цветовым зрением. Первые девять цветов будут максимально отличаться для таких людей, как и для людей с нормальным зрением. Эти девять цветов также легко различимы по названию цвета."
Дополнительная информация (со ссылкой на П. Грин-Армитэджа): «ISCC создал проектный комитет 54 с намерением актуализировать работу Келли. Однако комитет решил, что для того, что они пытались сделать, они не могли улучшить Набор цветов Келли».
2) Набор из 25 цветов, предложенный Робертом и Эллен Картер в работе:
Подробности (со ссылкой на П. Грин-Армитэджа): «Картер и Картер ссылаются на работу Келли и подтверждают его предположение о том, что легкость, с которой можно различить два цвета, зависит от того, насколько далеко друг от друга находятся цвета в цветовом пространстве. Из доступных цветовых пространств. в то время они выбрали CIE Lu v * как наиболее подходящую для своего исследования. <...> Они обнаружили, что способность людей правильно определять цвета быстро снижается, когда расстояние между цветами составляет менее 40 единиц CIE Lu v *». В своей работе они представляют набор из 25 цветов, разделенных не менее чем 51,6 единицами CIE L u v*.
3) Набор из 26 цветов для проекта «Алфавит цветов», предложенный Полом Грин-Армитэджем в цитируемой выше работе «Алфавит цветов и пределы цветового кодирования». Этот набор цветов предназначен для использования с белым фоном. Триплеты RGB этого набора: {240,163,255},{0,117,220},{153,63,0},{76,0,92},{25,25,25},{0,92,49},{43,206,72},{255,204,153},{128,128,128},{148,255,181},{143,124,0},{157,204,0},{194,0,136},{0,51,128},{255,164,5},{255,168,187},{66,102,0},{255,0,16},{94,241,242},{0,153,143},{224,255,102},{116,10,255},{153,0,0},{255,255,128},{255,255,0},{255,80,5}
.
4) Есть еще одна отличная статья на эту тему:
Эта статья содержит хороший набор из 26 различных цветов на странице 11:
Триплеты RGB этого набора: {2,63,165},{125,135,185},{190,193,212},{214,188,192},{187,119,132},{142,6,59},{74,111,227},{133,149,225},{181,187,227},{230,175,185},{224,123,145},{211,63,106},{17,198,56},{141,213,147},{198,222,199},{234,211,198},{240,185,141},{239,151,8},{15,207,192},{156,222,214},{213,234,231},{243,225,235},{246,196,225},{247,156,212}
.
Пользователь Татариз предлагает в своем блоге :
5) Набор из 64 максимально непохожих цветов :
6) Цветовой словарь из 269 максимально отличных цветов от всех предыдущих цветов ( эту функцию я использовал для получения триплетов RGB из шестнадцатеричных кодов):
Вот шестнадцатеричные коды из связанного сообщения в блоге (полный список 269 шестнадцатеричных кодов цветового алфавита Татаризе, скрытых в истории изменений для удобства чтения).
7) 256 различных цветов .
Потенциально полезные веб-приложения:
8) Список 20 простых, отчетливых цветов Саши Трубецкой:
«Я составил простой в использовании список цветов, оптимизированный для всех носителей; конечно, не без небольших компромиссов, таких как неточное преобразование CMYK. Основная проблема заключается в выборе «чистых» (например, 100% пурпурного) или веб-безопасных цветов. приводит к безвкусным, отвлекающим и несбалансированным цветовым палитрам. Это моя попытка создать красивую палитру, которая хорошо работает для сетевых или транспортных диаграмм или для категориальных данных».
"#023fa5", "#7d87b9", "#bec1d4", "#d6bcc0", "#bb7784", "#8e063b", "#4a6fe3", "#8595e1", "#b5bbe3", "#e6afb9", "#e07b91", "#d33f6a", "#11c638", "#8dd593", "#c6dec7", "#ead3c6", "#f0b98d", "#ef9708", "#0fcfc0", "#9cded6", "#d5eae7", "#f3e1eb", "#f6c4e1", "#f79cd4"
.print("'" + "', '". ...: join('#'+''.join(f'{int(c):02x}' for c in col.split(',')) for col in colors.strip('{}').split('},{')) + "'")
.Комбинация «яркий», «легко различимый» и «20 и более» хитрая. Напоминает «Наша работа быстрая, дешевая и качественная. Выберите любые два». Я думаю, вы могли бы выбросить слово «яркий» из смеси и просто сказать «контрастное». Это упрощает выполнение брифа и, я думаю, поможет вам достичь того, чего вы хотите.
Я не знаю такого набора навскидку, но вот как бы я это сделал с помощью Photoshop:
Создайте пустой документ в цветовом режиме (RGB или CMYK), который вы хотите использовать. RGB подходит для всех настольных принтеров, а также для просмотра на экране или в проекции. Используйте CMYK, только если вам нужны фактические значения CMYK.
Выберите 5 основных цветов, равномерно распределенных по цветовому кругу. В настройке Hue это означает 0, 60, 120, 180, 240 и 300. Это будут ваши отправные точки. (В качестве альтернативы можно заменить образцы по умолчанию набором для Windows или Mac, доступным во всплывающем меню панели «Образцы», и использовать от 7-го до 2-го последнего.)
Для каждого оттенка выберите 5 или 6 уровней яркости и насыщенности, чтобы получить легко различимые окончательные цвета.
Когда вы найдете каждый из них, добавьте его в свои образцы.
Если вы настраиваете их для программной генерации, просто выберите любое из значений, соответствующее цветовой модели, с которой вы будете иметь дело. Если вам нужно использовать Illustrator или Flash для точек, добавьте следующие шаги:
Удалите все остальные образцы (Alt/Opt-щелкните, чтобы удалить), чтобы остались только те, которые вам нужны.
Сохраните образцы, используя «Сохранить образцы для обмена…» во всплывающем меню «Образцы». При этом сохраняется файл .ASE, который можно загрузить в Illustrator, InDesign или любое другое приложение Adobe.
Надеюсь, это поможет.
[Дополнение после расширенного вопроса]
Базовые цвета в шестнадцатеричном формате: 0xff0000 (чисто красный), 0xffff00 (желтый), 0x00ff00 (зеленый), 0x00ffff (голубой), 0x0000ff (синий) и 0xff00ff (пурпурный). Поэкспериментировав, я обнаружил, что чистый желтый слишком близок к белому, чтобы быть полностью полезным для ваших целей, а для синего требуется другая отправная точка, потому что он визуально темный. Из каждого базового цвета можно получить 4 оттенка. Поскольку вы также можете использовать серые цвета, это позволяет использовать матрицу 7x4, что я считаю вполне пригодными для использования цветами, учитывая ваши ограничения (и предполагаемое отсутствие доступа к Photoshop или аналогичному приложению). Возьмите калькулятор и выведите десятичные значения, если они вам нужны! :-)
Для всего, кроме желтого, синего и серого, исходными точками являются чистые цвета. Уменьшите шестнадцатеричные значения с ff до b0, 87 и 55 для ваших четырех оттенков.
Для синего «яркий» — это b0b0ff, а оттенки — 8484ff, 4949ff и 0000ff.
Для желтого: будут работать e4e400, baba00, 878700 и 545400, а для значений серого сделайте младшие байты такими же, как старшие и средние в каждом случае.
Моя быстрая и грязная диаграмма этих (за вычетом серых) выглядит так:
#ff0000 #b00000 #870000 #550000 #e4e400 #baba00 #878700 #545400 #00ff00 #00b000 #008700 #005500 #00ffff #00b0b0 #008787 #005555 #b0b0ff #8484ff #4949ff #0000ff #ff00ff #b000b0 #870087 #550055 #e4e4e4 #bababa #878787 #545454
но я бы не обязательно использовал их в таком порядке...{255,0,0}, {228,228,0}, {0,255,0}, {0,255,255}, {176,176,255}, {255,0,255}, {228,228,228}, {176,0,0}, {186,186,0}, {0,176,0}, {0,176,176}, {132,132,255}, {176,0,176}, {186,186,186}, {135,0,0}, {135,135,0}, {0,135,0}, {0,135,135}, {73,73,255}, {135,0,135}, {135,135,135}, {85,0,0}, {84,84,0}, {0,85,0}, {0,85,85}, {0,0,255}, {85,0,85}, {84,84,84}
.Хороший подход — цветовая схема Solarized от Ethan Schoonover.
Из описания:
«Solarized — это палитра из шестнадцати цветов (восемь монотонов, восемь акцентных цветов), предназначенная для использования с терминалами и приложениями с графическим интерфейсом».
Я думаю, что это не только красивая цветовая схема, но и расширяемая, и за ней стоит хорошая теория.
Есть фундаментальный недостаток, и это попытка изобразить 20 разных вещей в одном изображении. Это большой визуальный беспорядок, и добавление 20 цветов только усугубит этот беспорядок.
Я бы подумал о переосмыслении общего визуального образа, если вы можете. Возможно, сегментировать его на 4 визуала по 5 цветов в каждом, смешивать и сочетать наложения и т. д.
Tufte — это ресурс, на котором можно узнать больше о построении данных таким образом, чтобы лучше всего передать цель:
Вы можете попробовать эту палитру цветов. Он был разработан для карт, но мы также используем его для диаграмм и графиков. Удачи!
Но максимум 12 цветов. Извините. :)
Я столкнулся с той же проблемой, пытаясь отобразить данные, соответствующие 24 различным человеческим хромосомам (1-22, X и Y). Мое решение закончилось разработкой моего собственного пакета R:
https://cran.r-project.org/web/packages/Polychrome/index.html
https://www.jstatsoft.org/article/view/v090c01
Сюда входят инструменты для создания собственных палитр и проверки «различимости» цветов в палитре. Одна из виньеток упаковки включает эвристический аргумент, предполагающий, что максимально возможное количество различимых цветов, вероятно, меньше 40. Что ж.)
Вот набор, который я разработал, из 26 максимально различных значений RGB (28, если вы включаете черный и белый). Это также цветной алфавит. Он отличается от цветового алфавита Питера Грина-Армитэджа и 22 цветов Кеннета Келли тем, что он оптимизирован для компьютерных дисплеев, а не для печатных материалов. И отличается от 20 цветов Саши Трубецкого тем, что не пытается быть со вкусом. :-) Но эти три примера оказались очень полезными.
#00B7FF, #004DFF, #00FFFF, #826400, #580041, #FF00FF, #00FF00, #C500FF, #B4FFD7,
#FFCA00, #969600, #B4A2FF, #C20078, #0000C1, #FF8B00, #FFC8FF, #666666, #FF0000,
#CCCCCC, #009E8F, #D7A870, #8200FF, #960000, #BBFF00, #FFFF00, #006F00
е100
е100
Алексей Попков
Алексей Попков