"Найкраща" серія кольорів, яка використовується для розмежування серії в сюжетах якості публікацій


89

Чи було проведено якесь дослідження щодо того, які найкращі кольори використовувати для показу кількох серій на одному сюжеті? Я щойно використовував параметри за замовчуванням matplotlib, і вони виглядають трохи по-дитячому, оскільки вони все яскраві, основні кольори.


28
Це не відповідає на ваше запитання, але я думаю, що це важливо згадати. По можливості, будь-яку обрану колірну гамму слід доповнити різними символами чи стилями ліній, таким чином, коли сюжет друкується чорно-білим кольором, його все одно легко зрозуміти. Занадто часто автори покладаються виключно на колір, роблячи фігури непотрібними для кольорових штор і тим, хто вважає за краще читати чорно-білу друковану версію Вашого паперу. Ділянки завжди повинні, по можливості, працювати чорно-білими, працювати «краще» за кольором.
WetlabStudent

11
+1 до MHH. Легендарний фрагмент телевізійного коментаря до снукера посилається на той самий момент побічно: "Стів іде на рожевий куля - а для тих із вас, хто дивиться чорно-білі, рожевий - поруч із зеленим". Пояснення для молодших читачів: Це відбувається з того часу, коли деякі люди могли дозволити собі кольорове телебачення, але іншим довелося шукати дешевше чорно-біле телебачення.
Нік Кокс

5
"Найкраще" з якою метою? Це не тривіальне чи легковажне питання. Щоб вразити читачів інтернет-форуму, я використовую графічні символи, які працюють без кольору, а потім прикрашаю їх кольорами веселки (що може бути значимим, але вони є насамперед для привернення уваги та надання відчуття «якості»). Для сюжетів, які призначені для передачі даних, може бути обрана інша кольорова схема, тоді як для сюжетів, створених дослідницьким способом, щоб виявити можливі несподівані закономірності (у візуальному гештальті ), схема повинна залежати від мети: диференціації, агрегації, вибору, інший?
whuber

2
@whuber: Ви вказуєте на думку. Я мав би вказати, що я маю на увазі публікацію в науковій літературі, і взагалі мав на меті попросити відповіді на кожну з категорій агрегації, відбору, диференціації тощо. Дійсно, агрегація та диференціація часто не є окремими цілями: на малюнках з одного з моїх робіт ( dx.doi.org/10.1063/1.4864755 ) мені потрібні були обидва (і я не думаю, що я зробив це дуже добре). (Вибачте тим, хто не в академічних містечках; я спробую незабаром встановити загальнодоступне посилання)
Девід Холлман

2
Досить хороша дискусія як відправна точка щодо graphicsdesign.stackexchange.com/questions/7960/… graphicdesign.stackexchange.com/questions/3682/…
Геренук

Відповіді:


53

Поширена орієнтація на вибір кольорової палітри - робота Сінтії Брюер на ColorBrewer . Кольори були вибрані на основі сприйнятих візерунків на картах хороплета, але більшість тих же порад стосується використання кольору в будь-якому типі сюжету для розрізнення шаблонів даних. Якщо колір полягає лише в тому, щоб розрізняти різні лінії, значить, якісна палітра в порядку.

Кольори часто не потрібні на графіках ліній лише з декількома лініями, а різні символи точок та / або візерунки тире є досить ефективними. Більш поширеною проблемою на графіках ліній є те, що якщо лінії часто перетинаються, буде складно розрізнити різні візерунки незалежно від того, які символи та колір ви використовуєте. Стівен Кослін рекомендує загальне правило, щоб у графіку було лише 4 рядки. Якщо у вас є більше уваги, розбийте лінії на ряд невеликих декількох сюжетів. Ось приклад, що показує рекомендацію

Кольору не потрібно, а етикетки більш ніж достатні.


4
Мені подобається палітра "Dark2" від ColorBrewer!
Gimelist

5
Дякуємо за рекомендацію ColorBrewer! Це та річ, яку я шукав.
Девід Холман

Зображення сірого кольору не працює, якщо десь посередині є дві серії з однаковим значенням (двох серій неможливо простежити повз цю точку), або в кінці (мітки не зможуть розрізнити, який серія є яка). Це чудово, коли це працює, хоча ...
naught101

Погодьтеся @ naught101 для середини (кінці збігаються, просто поставте мітку десь до кінця). Це одна з причин фактично не використовувати лінійну інтерполяцію між точками, а використовувати певний тип сплайна. У цьому випадку сплайн буде кривим у різних напрямках. Це відбувається досить багато у щільних паралельних ділянках координат. (Тремтіння також може допомогти з багатьма зв’язками даних, як-от дані з низьким цілим числом.)
Енді Ш

1
Ваші відгуки про дані, а саме. книги про Амазонку неймовірні. Дякую тобі за це.
Енді Ш

40

Багато надзвичайно гарних порад в інших відповідях, але ось кілька додаткових моментів із моїх власних порад щодо низького рівня для студентів. Це, звичайно, лише поради, які слід подумати над ключовими запитаннями: що призначений для мене графік? У чому сенс цих даних? Хто читацький? Що я очікую від кольорів у графіку? Чи добре працює графік, незалежно від чужих догм?

Крім того, значення кольору сильно різниться від одного графіка до іншого. Для карти хороплету або патча, де ідея справді полягає в тому, що різні ділянки кольорові або принаймні по-різному затінені, успіх графіка пов'язаний з успіхом його кольорової гами. Для інших видів графіків кольори можуть бути непотрібними або навіть неприємними.

  1. Чи потрібні ваші кольори? Наприклад, якщо різні змінні або групи чітко відрізняються текстовими мітками в різних регіонах графіка, то окремі кольори теж часто будуть надмірними. Остерігайтеся ефектів фруктового салату чи технічного кольору мрійника. Наприклад, для кругової діаграми з текстовим маркуванням на шматочках або на фрагментах колір не містить додаткової інформації, наприклад. (Якщо ваша кругова діаграма залежить від ключа чи легенди, ви, ймовірно, намагаєтеся неправильно видати графік.)

  2. Ніколи не покладайтеся на контраст між червоним та зеленим, оскільки так багато людей намагаються розрізнити ці кольори.

  3. Послідовності веселки (ROYGBIV або червоно-оранжево-жовтий-зелений-синій-індиго-фіолетовий) можуть сподобатися на фізичних підставах, але вони не працюють добре на практиці. Наприклад, жовтий, як правило, слабкий колір, тоді як помаранчевий і зелений зазвичай сильніші, тому враження навіть не монотонної послідовності.

  4. Уникайте будь-якої кольорової гами, яка має наслідком великих плям сильного кольору.

  5. Послідовність від темно-червоного до темно-синього добре працює, коли потрібна впорядкована послідовність. Якщо білий колір є (як завжди) кольором фону де завгодно, не використовуйте його, а переходьте від блідо-червоного до блідо-синього. [додано 1 березня 2018] Можливо, занадто очевидно, щоб підкреслити: червоний колір має конотацію негативної та / або небезпечної для багатьох, яка може бути корисною, а синій може означати позитивну. Занадто очевидно, щоб підкреслити, але я це роблю будь-яким чином: червоні та сині мають багато політичних конотацій у багатьох країнах.

  6. Синій та помаранчевий добре поєднуються (вдячний кивок Хасті, Тибширані та Фрідману тут: http://web.stanford.edu/~hastie/local.ftp/Springer/OLD/ESLII_print4.pdf ) [додано 1 березня 2018] Багато вступні книги про візуалізацію тепер рекомендують помаранчевий, синій та сірий як основну палітру: помаранчевий та / або синій для того, що вам цікаво, та сірий для заднього тла.

  7. Відтінки сірого від блідо-сірого до темно-сірого можуть добре працювати, і це гарна ідея, коли відтворення кольорів не підлягає. (Це паршивий принтер, який не може зробити справедливий удар на відтінках сірого.) (Сірий, якщо вам подобається; налаштування змінюються в океанах, здається; так само, як і колір і колір.)

  8. [додано 5 серпня 2016] Досить загальним принципом є те, що часто два кольори працюють набагато краще, ніж багато. Якщо обидві групи представляють інтерес, то вибирайте однаково сильні кольори (наприклад, червоний або помаранчевий і синій). Якщо одна група представляє особливий інтерес серед кількох, зробіть її синьою або помаранчевою, а інші - нехай сірою. Використання семи кольорів для семи груп в принципі несе інформацію, але важко навіть зосередитись на одному кольорі в той час, коли є конкуренція з кількох інших. Невеликі кратні можуть бути кращими для декількох груп, ніж багатобарвний сюжет.


1
Дуже хороший пункт про слабкі та сильні кольори
shadowtalker

2
Пункт 2 ДУЖЕ важливий. Один з моїх вчителів статистики був кольоровим і радісно використовував "світло-жовтий" та "світло-зелений жовтий" у графіку. Колір був практично однаковий у нас, але для нього вони легко розмивались.
Крістіан Зауер

1
Дякую за поради, особливо №2. Я озирнувся до своїх сюжетів і зрозумів, що червоний і зелений - це перші два кольори, які matplotlib завжди вибирає. Це не так здорово.
Девід Холман

Це, здається, дефолт за замовчуванням.
Нік Кокс

27

Останніми роками насправді було проведено багато досліджень.

Важливим моментом є "смисловий резонанс". Це в основному означає "кольори, які відповідають тому, що вони представляють", наприклад часовий ряд грошей повинен бути кольоровим кольором, принаймні для аудиторії в США. Це, очевидно, покращує розуміння. Один дуже цікавий документ з цього приводу - Lin, et al (2013): http://vis.stanford.edu/papers/semantically-resonant-colors

На http://tools.medialab.sciences-po.fr/iwanthue/ є також дуже приємний генератор кольорів iWantHue , який містить багато інформації на інших вкладках.

Список літератури

Лін, Шерон, Джулі Фортуна, Чінмай Кулкарні, Морін Стоун та Джеффрі Хер. (2013). Вибір семантично-резонансних кольорів для візуалізації даних. Форум комп'ютерної графіки (Proc. EuroVis), 2013 р


13
+1 ... Однак деякі речі - наприклад, ваш приклад грошей - не є універсальними. Гроші можуть бути зеленими (-іше) у США. Він не зелений скрізь, і асоціація з кольором може відрізнятись від країни до країни (наприклад, хтось у Німеччині, можливо, більше асоціює синій з грошима, хоча в даний час він має тенденцію до різноманітних кольорів).
Glen_b

@Glen_b хороший момент
shadowtalker

1
+1 за цитування робіт, де найкраще вирішуються перші три слова питання :-)
Девід Холман

22

Пол Тол пропонує кольорову схему, оптимізовану для кольорових відмінностей (тобто, категоричних або якісних даних) та кольорового бачення на своєму веб-сайті , а також детально в «технотеті» (PDF-файл), пов’язаній із ним. Він заявляє:

Щоб зробити графіку з вашими науковими результатами максимально зрозумілою, зручно мати палітру кольорів, які є:

  • розрізнений для всіх людей, включаючи кольорових читачів;
  • відмінні від чорного і білого;
  • виразний на екрані та папері; і
  • все ще добре поєднуються разом.

Я взяв кольорову гаму з його "Палітри 1" з 9 найвиразніших кольорів і розмістив її у своєму matplotlibrcфайлі під axes.color_cycle:

axes.color_cycle    : 332288, 88CCEE, 44AA99, 117733, 999933, DDCC77, CC6677, 882255, AA4499

Тоді, запозичивши у відповіді Джо Кінгтона, відповіді на типові рядки, як зображено:

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np

x = np.linspace(0, 20, 100)

fig, axes = plt.subplots(nrows=2)

for i in range(1,10):
    axes[0].plot(x, i * (x - 10)**2)

for i in range(1,10):
    axes[1].plot(x, i * np.cos(x))

plt.show()

призводить до:

введіть тут опис зображення

Для розбіжних кольорових карт (наприклад, для представлення скалярних значень) найкращою посиланням, яку я бачив, є документ Кеннета Мореленда, доступний тут " Розбіжні кольорові карти для наукової візуалізації ". Він розробив схему прохолодно-тепла для заміни схеми веселки і "представляє алгоритм, який дозволяє користувачам легко генерувати власні спеціалізовані кольорові карти".

Ще одне корисне джерело для інформації про використання кольору в наукових візуалізаціях походить від Роберта Сіммона, людини, яка створила зображення "Синього мармуру" для NASA. Дивіться його серії публікацій на веб-сайті обсерваторії Землі.


6
+1 до єдиної (!) Відповіді з дев'яти, яка насправді показує кольори у відповідь на питання про "кращі кольори".
амеба

@amoeba: ну не більше :-)
Тунг

20

На colorbrewer2.org ви можете знайти якісні , послідовні та розбіжні колірні схеми. Якість максимально збільшує різницю між послідовними кольорами, і саме це я використовую в gnuplot. Краса сайту полягає в тому, що ви можете легко скопіювати шістнадцяткові коди кольорів, щоб вони легко було імпортувати. Як приклад, я використовую такий 8-кольоровий набір:

#e41a1c
#377eb8
#4daf4a
#984ea3
#ff7f00
#ffff33
#a65628
#f781bf

Це досить приємно і дає чіткі результати.

Як бічна примітка, послідовність використовується, коли вам потрібен плавний градієнт і розходяться, коли потрібно виділити відмінності від центрального значення (наприклад, висота гори та глибина моря). Детальніше про ці кольорові схеми ви можете прочитати тут .


1
Я особисто не вважаю яскраво-жовтого кольору чітким сюжетним кольором
ромбідодекаедр

11

Існує безліч веб-сайтів, присвячених вибору кольорової палітри. Я не знаю, що існує певний набір кольорів, який об'єктивно є найкращим, ви повинні будете вибирати, виходячи зі своєї аудиторії та тон вашої роботи.

Перевірте http://www.colourlovers.com/palettes або http://design-seeds.com/index.php/search, щоб розпочати роботу. Деякі з них мають два кольори, які відображають різні групи, але інші надають вам додаткових кольорів у ширшому діапазоні.

Ви також можете перевірити заздалегідь задані набори кольорів за замовчуванням у Matplotlib .


5

Мені подобається палітра Dark2 від colorbrewer для розкидання сюжетів. Ми використовували це в книзі ggobi , www.ggobi.org/book . Але в іншому випадку палітри кольорів призначені для географічних районів, а не графіків даних. Хороший вибір кольору все ще є проблемою для точкових сюжетів.

Пакети R colorspaceі dichromatкорисні. colorspaceдозволяє підбирати кольори навколо колеса: ви можете проводити години / дні на тонку настройку. dichromatдопомагає перевірити кольороту.

ggplot2 як правило, має хороші параметри за замовчуванням, хоча це не обов'язково кольорові сліпи.

Розбіжна схема червоного на синє добре виглядає на вашому комп’ютері, але не працює добре.


3

Іншою можливістю було б знайти набір кольорів, які є а) рівновіддаленими в LAB, б) враховують кольорову сліпоту і в) можуть вписуватися в гаму кольорового простору sRGB, а також в гами найпоширеніших просторів CMYK.

Я думаю, що остання вимога - це необхідність будь-якого способу вибору кольорів - це не принесе користі, якщо кольори добре виглядають на екрані, але затуманені при друкуванні в процесі CMYK. А оскільки ОП вказала "якість публікації", я припускаю, що графіки дійсно будуть надруковані у CMYK.


3

Це моя улюблена схема. Він має 20 (!!!!) різних кольорів, усі вони легко відрізнити. Це, мабуть, не вдається для кольорових людей.

#e6194b
#3cb44b
#ffe119
#0082c8
#f58231
#911eb4
#46f0f0
#f032e6
#d2f53c
#fabebe
#008080
#e6beff
#aa6e28
#fffac8
#800000
#aaffc3
#808000
#ffd8b1
#000080
#808080
#ffffff
#000000

2

Складаючи лінії, слід стежити за зеленим та жовтим кольором, які не добре відображаються на проекторах. Оскільки я врешті-решт використовую більшість своїх сюжетів у презентаціях, я уникаю цих кольорів, навіть якщо оригінальний намір призначений для публікації на екрані чи на папері.

В інтересах збереження високого контрасту, це залишає мене з чорним, червоним, синім, пурпуровим, блакитним, і якщо мені це дуже потрібно, я використовую сірий. Дійсно, більшість із них - яскраві, первинні чи вторинні кольори. Я знаю, що це може бути не оптимальним з естетичної точки зору, але мене більше цікавить ясність того, що я представляю. З іншого боку, послідовне використання одних і тих же кольорів з обмеженої палітри може бути хорошою естетичною справою.

Якщо ви використовуєте більше 6 рядків, ви заповнюєте більше місця та рухаєтеся до побудови кольорових блоків. Для таких видів сюжету, я думаю, кожен випадок потрібно розглядати окремо. Ви хочете, щоб крайності виділялися, або нульові переходи? Чи ваші дані циклічні (наприклад, 0 і 2π повинні використовувати один і той же колір)? Чи є аналогія до таких стандартів, як синій / червоний для температури? Чи білий колір являє собою NaN, немає даних, або він буде використовуватися як родзинка? etcetc.


2

Для глядачів з кольоровими слідами CARTOColors має якісну схему, сприятливу для кольорових штор, яка називається Safeна основі популярних кольорових схем Пола Тола . Ця палітра складається з 12 кольорів, що легко відрізняються.

Ще одна чудова якісна палітра для кольорових штор - схема Okabe та Ito, запропонована у статті «Універсальний кольоровий дизайн (CUD): Як зробити фігури та презентації, приємні для людей, що слідують за кольором».

### Example for R users
library(ggplot2)
library(rcartocolor)
library(patchwork)
theme_set(theme_classic(base_size = 14) + theme(panel.background = element_rect(fill = "#ecf0f1")))

set.seed(123)
df <- data.frame(x = rep(1:5, 8), 
                 value = sample(1:100, 40), 
                 variable = rep(paste0("category", 1:8), each = 5))

safe_pal <- carto_pal(12, "Safe")
palette_OkabeIto_black <- c("#E69F00", "#56B4E9", "#009E73", "#F0E442", 
                            "#0072B2", "#D55E00", "#CC79A7", "#000000")

# plot
p1 <- ggplot(data = df, aes(x = x, y = value)) + 
  geom_line(aes(colour = variable), size = 1) +
  scale_color_manual(values = palette_OkabeIto_black)


p2 <- ggplot(data = df, aes(x = x, y = value)) + 
  geom_col(aes(fill = variable)) +
  scale_fill_manual(values = safe_pal)

p1 / p2

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.