출판 품질 플롯에서 시리즈를 차별화하는 데 사용할“최상의”색상 시리즈


89

동일한 플롯에 여러 계열을 표시하는 데 사용할 최상의 색상 세트에 대한 연구가 있습니까? 방금 기본값을 사용하고 matplotlib있으며 모두 밝고 기본 색상이므로 조금 유치합니다.


28
이것은 귀하의 질문에 대답하지 않지만 언급하는 것이 중요하다고 생각합니다. 가능할 때마다 선택한 색 구성표에 다른 기호 나 선 스타일이 추가되어 플롯이 흑백으로 인쇄 될 때 여전히 이해하기 쉽습니다. 너무 자주 저자는 색상에만 의존하여 수치가 컬러 맹인에게 무용지물이되고 흑백 인쇄 된 버전의 용지를 읽는 사람은 쓸모 없게 만듭니다. 플롯은 가능하면 항상 흑백으로 작업해야하며 색상이 "더 좋게"작동해야합니다.
WetlabStudent

11
MHH에 +1 스누커에 관한 전설적인 텔레비전 논평은 간접적으로 같은 점을 지적합니다. "스티브는 분홍색 공을 향해 가고 있습니다. 흑백으로보고있는 여러분에게는 분홍색이 녹색 옆에 있습니다." 더 젊은 독자들을위한 설명 : 일부 사람들은 컬러 텔레비전을 구입할 수 있지만 다른 사람들은 더 저렴한 흑백 텔레비전을 사러 갈 때가 왔습니다.
Nick Cox

5
무슨 목적으로 "최고"? 이것은 사소한 질문이나 플립 팬트 질문이 아닙니다. 인터넷 포럼 독자에게 감동을주기 위해 색상없이 작동하는 그래픽 심볼을 사용한 다음 레인보우 색상으로 장식합니다 (의미 할 수 있지만 주로주의를 끌고 "품질"에 대한 감각을주기 위해 존재 함). 데이터를 전송하려는 플롯의 경우 다른 색 구성표를 선택할 수 있지만 탐색 적 방식으로 생성 된 플롯의 경우 예상치 못한 패턴 (시각적 gestalt ) 을 나타 내기 위해 해당 구성표는 차별화, 집계, 선택, 다른?
whuber

2
@ whuber : 당신은 요점을합니다. 나는 과학 문헌에 출판하기 위해, 일반적으로 집계, 선택, 차별화 등의 각 범주에 대한 답변을 요구할 것을 명시 했어야했다. 실제로 집계와 차별화는 별도의 목표가 아니다 : 그림에서 내 논문 중 하나 ( dx.doi.org/10.1063/1.4864755 )에서 두 가지가 모두 필요했습니다 (그리고 나는 그것을 잘 수행했다고 생각하지 않습니다). (대학 캠퍼스에 당신의 그들을하지에 죄송합니다, 나는 곧 일반 대중 링크를 넣어하려고합니다)
데이비드 홀만

2
graphicdesign.stackexchange.com/questions/7960/… 의 출발점으로서 꽤 좋은 토론
Gerenuk

답변:


53

컬러 팔레트 선택에 대한 일반적인 참조는 Cynthia Brewer의 ColorBrewer 작품입니다 . 색상은 choropleth 맵의 지각 패턴을 기반으로 선택되었지만 대부분의 동일한 조언은 데이터 패턴을 구별하기 위해 모든 유형의 플롯에서 색상을 사용하는 데 적용됩니다. 색상이 서로 다른 선을 구분하기위한 것이라면 질적 팔레트가 순서대로 나타납니다.

몇 개의 선만있는 선 그림에는 색상이 필요하지 않으며 다른 점 기호 및 / 또는 대시 패턴이 충분히 효과적입니다. 선 그림에서 더 일반적인 문제는 선이 자주 겹치면 사용하는 심볼이나 색상에 관계없이 다른 패턴을 구분하기가 어렵다는 것입니다. Stephen Kosslyn은 줄거리에 4 줄만있는 일반적인 경험 법칙을 권장합니다. 더 많은 선을 여러 개의 작은 여러 플롯으로 분할하는 것을 고려하십시오. 다음은 권장 사항을 보여주는 예입니다

색상이 필요없고 라벨이 충분합니다.


4
ColorBrewer의 "Dark2"팔레트를 좋아합니다!
Gimelist

5
ColorBrewer를 추천 해 주셔서 감사합니다! 내가 찾던 그런 종류의 것입니다.
David Hollman

어딘가 중간에 (그 지점을 지나서 다시 추적 할 수 없음) 또는 끝에 (라벨이 시리즈는 어느 것입니까). 그것은 작동 할 때 훌륭합니다 ...
naught101

중간에 @ naught101에 동의하십시오. (끝이 일치하면 레이블을 끝 앞쪽에 놓으십시오). 실제로 점 사이에 선형 보간을 사용하지 않지만 일부 유형의 스플라인을 사용하는 것이 한 가지 이유입니다. 이 경우 스플라인은 다른 방향으로 구부러집니다. 이것은 밀도가 높은 평행 좌표 플롯에서 상당히 많이 발생합니다. (지 터링은 낮은 정수 카운트 데이터와 같이 많은 관계가있는 데이터에도 도움을 줄 수 있습니다.)
Andy W

1
data viz에 대한 사용자 리뷰 아마존에 관한 책은 믿어지지 않습니다. 고마워
Andy W

40

다른 답변에서 많은 훌륭한 조언이 있지만 여기에 저의 저수준 조언에서 학생들에게 몇 가지 추가 사항이 있습니다. 이것은 핵심 질문에 대해 자연스럽게 생각할 조언입니다. 내 그래프는 무엇을 의도합니까? 이 데이터에 어떤 의미가 있습니까? 독자는 누구입니까? 그래프에서 색상이 예상되는 것은 무엇입니까? 다른 사람의 교리와 상관없이 그래프가 잘 작동합니까?

또한 색상의 중요성은 그래프마다 크게 다릅니다. 서로 다른 영역이 서로 다른 색으로 표시되거나 최소한 음영 처리된다는 아이디어가있는 choropleth 또는 patch map의 경우 그래프의 성공은 색상 구성의 성공과 결부됩니다. 다른 종류의 그래프의 경우 색상이 없어야하거나 성가신 것일 수 있습니다.

  1. 색상이 모두 필요합니까? 예를 들어, 다른 변수 또는 그룹이 그래프의 다른 영역에있는 텍스트 레이블로 명확하게 구별되는 경우 별도의 색상도 종종 과도하게 사용됩니다. 과일 샐러드 또는 technicolor 드림 코트 효과에주의하십시오. 텍스트 레이블이 있거나 조각별로 원형 차트의 경우 색상은 예를 들어 추가 정보를 전달하지 않습니다. 원형 차트가 키 또는 범례에 의존하는 경우 잘못된 종류의 그래프를 사용하고있을 가능성이 있습니다.

  2. 많은 사람들이 이러한 색상을 구별하기 위해 애 쓰고 있기 때문에 빨강과 녹색의 대비에 의존하지 마십시오.

  3. 레인보우 시퀀스 (ROYGBIV 또는 빨강-오렌지-노랑-녹색-파랑-인디고-바이올렛)는 물리적 근거에 호소 할 수 있지만 실제로는 잘 작동하지 않습니다. 예를 들어 노란색은 일반적으로 약한 색상이며 주황색과 녹색은 일반적으로 더 강하므로 인상은 단조로운 시퀀스도 아닙니다.

  4. 강한 색상의 큰 패치로 인한 색상 구성표를 피하십시오.

  5. 진한 빨강 색에서 진한 파랑 색까지의 순서는 순서가 필요할 때 잘 작동합니다. 흰색이 (평소와 같이) 배경색이면 사용하지 말고 옅은 빨간색에서 옅은 파란색으로 건너 뜁니다. [2018 년 3 월 1 일 추가됨] 밑줄을하기에는 너무 분명 할 수 있습니다. 빨간색은 많은 사람들에게 부정적인 의미 및 / 또는 위험을 의미하므로 도움이 될 수 있으며 파란색은 긍정적입니다. 밑줄이 너무 분명하지만 어떤 식 으로든 할 수 있습니다. 빨간색과 파란색은 많은 국가에서 정치적 의미를 가지고 있습니다.

  6. 파란색과 주황색이 잘 어울립니다 (여기서 Hastie, Tibshirani 및 Friedman에 대한 감사의 인사 : http://web.stanford.edu/~hastie/local.ftp/Springer/OLD/ESLII_print4.pdf ) [2018 년 3 월 1 일 추가] 많은 시각화에 대한 입문서는 이제 기본 팔레트로 주황색, 파란색 및 회색을 권장합니다. 관심있는 대상에 대해 주황색 및 / 또는 파란색, 배경에 대해 회색입니다.

  7. 연한 회색에서 진한 회색까지의 회색조는 잘 작동 할 수 있으며 색상 재현이 문제가되지 않을 때 좋은 생각입니다. (회색조로 공평한 배쉬를 만들 수없는 형편없는 프린터입니다.) (원하는 경우 회색, 환경에 따라 환경 설정이 변경되는 것처럼 색상 및 색상과 마찬가지로)

  8. [2016 년 8 월 5 일 추가] 상당히 일반적인 원리는 종종 두 가지 색상이 많은 색상보다 훨씬 잘 작동한다는 것입니다. 두 그룹이 모두 관심이 있다면 동일하게 강한 색상을 선택하십시오 (예 : 빨강 또는 주황 및 파랑). 한 그룹이 여러 그룹 중 특히 관심이있는 경우 파란색 또는 주황색으로 만들고 다른 그룹을 회색으로 만듭니다. 원칙적으로 7 개 그룹에 7 가지 색상을 사용하면 정보를 전달할 수 있지만, 다른 여러 업체와 경쟁이있을 때 한 번에 하나의 색상에만 집중하기는 어렵습니다. 작은 배수는 다색 도표보다 여러 그룹에 더 좋습니다.


1
약하고 강한 색상에 대한 아주 좋은 지적
shadowtalker

2
포인트 2는 매우 중요합니다. 저의 통계 교사 중 한 명은 색맹이며 차트에서 "밝은 노란색"과 "밝은 노란색"을 행복하게 사용했습니다. 색깔은 우리와 거의 같았지만, 그에게는 쉽게 구별 할 수있었습니다.
Christian Sauer

1
팁, 특히 # 2에 감사드립니다. 나는 내 음모를 되돌아보고 matplotlib이 항상 선택하는 첫 두 가지 색상 인 빨강과 초록을 깨달았습니다. 그다지 좋지 않습니다.
David Hollman

그것은 기이 한 기본값으로 보입니다.
Nick Cox

27

최근 몇 년 동안 이것에 대한 많은 연구가있었습니다.

중요한 점은 "의미 적 공명"입니다. 이것은 기본적으로 "그들이 나타내는 것과 일치하는 색"을 의미합니다. 예를 들어 돈의 시계열은 적어도 미국의 관객에게는 녹색으로 표시되어야합니다. 이것은 분명히 이해력을 향상시킵니다. 이 주제에 관한 매우 흥미로운 논문 중 하나는 Lin, et al (2013)입니다 : http://vis.stanford.edu/papers/semantically-resonant-colors

http://tools.medialab.sciences-po.fr/iwanthue/에 iWantHue 색상 생성기 가 있으며 다른 탭에는 많은 정보가 있습니다.

참고 문헌

Lin, Sharon, Julie Fortuna, Chinmay Kulkarni, Maureen Stone 및 Jeffrey Heer. (2013). 데이터 시각화를위한 시맨틱 공진 색상 선택. 2013 년 컴퓨터 그래픽 포럼 (Proc. EuroVis)


13
+1 ... 그러나 의 예와 같은 것들이 보편적이지 않습니다. 미국에서는 돈이 녹색 일 수 있습니다. 어느 곳에서나 녹색이 아니며 색상과의 연관성은 국가마다 다를 수 있습니다 (예를 들어, 독일의 누군가는 돈과 파란색을 연관시킬 가능성이 더 높지만 요즘에는 다양한 색상으로 나타납니다).
Glen_b

@Glen_b 좋은 점
shadowtalker

1
인용 논문, +1에 가장 주소를 :-) 질문의 처음 세 단어
데이비드 홀만

22

Paul Tol은 자신의 웹 사이트 에서 색상 차이 (예 : 범주 형 또는 정 성적 데이터) 및 색맹 비전에 최적화 된 색 구성표를 제공하며 여기 에 연결된 "기술 노트"(PDF 파일)로 자세하게 설명합니다. 그는 말한다 :

과학적인 결과를 가능한 한 명확하게 그래픽으로 나타내려면 다음과 같은 색상 팔레트를 사용하는 것이 편리합니다.

  • 색맹 리더를 포함한 모든 사람들에게 독특함;
  • 흑백과 구별;
  • 스크린과 종이에 뚜렷한; 과
  • 여전히 잘 어울립니다.

나는 가장 뚜렷한 9 가지 색상 중 하나 인 "팔레트 1"에서 색상 구성표를 가져 와서 matplotlibrc파일 아래 에 배치했습니다 axes.color_cycle.

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

그런 다음 Joe Kington의 답변 에서 빌린 기본 줄에 다음과 같이 표시됩니다.

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를 위해 "Blue Marble"이미지를 만든 Robert Simmon의 정보입니다. Earth Observatory 웹 사이트에서 그의 일련의 게시물 을 보십시오 .


6
"최고의 색상"에 대한 질문에 대한 응답으로 실제로 색상표시 하는 9 개 중 +1 (+) 만 응답합니다.
amoeba

@amoeba : 더 이상은 :-)
Tung

20

colorbrewer2.org 찾을 수 질적 , 연속분기 색 구성표를. 정 성적 (Qualitative) 은 연속적인 색상의 차이를 최대화하며 이것이 바로 gnuplot에서 사용하는 것입니다. 이 사이트의 장점은 16 진수 코드를 쉽게 복사하여 가져올 수 있다는 것입니다. 예를 들어 다음 8 색 세트를 사용하고 있습니다.

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

오히려 유쾌하고 명확한 결과를 생성합니다.

참고로, 순차 는 부드러운 기울기 가 필요할 때 중심 값 (예 : 산 고도 및 해수)과의 차이를 강조해야 할 때 분기 됩니다. 이 색 구성표에 대한 자세한 내용은 여기를 참조하십시오 .


1
나는 개인적으로 밝은 노란색을 분명한 음모로 생각하지 않습니다
rhombidodecahedroned

11

컬러 팔레트 선택 전용 웹 사이트가 많이 있습니다. 나는 객관적으로 가장 좋은 특정 색상 세트가 있다는 것을 모르겠습니다. 청중과 작품의 색조에 따라 선택해야합니다.

시작하려면 http://www.colourlovers.com/palettes 또는 http://design-seeds.com/index.php/search 를 확인하십시오 . 그들 중 일부는 서로 다른 그룹을 표시하기 위해 두 개의 가까운 색상을 가지고 있지만 다른 것들은 더 넓은 범위에 걸쳐 보완적인 색상을 제공합니다.

Matplotlib에서 기본아닌 미리 정의 된 색상 세트를 확인할 수도 있습니다 .


5

나는 산점도를 위해 colorbrewer의 Dark2 팔레트를 좋아합니다. 우리는 이것을 ggobi book, www.ggobi.org/book 에서 사용했습니다 . 그러나 그렇지 않으면 컬러 팔레트는 데이터 플롯이 아닌 지리적 영역을위한 것입니다. 포인트 기반 플롯의 경우에도 올바른 색상 선택이 문제입니다.

는 R 패키지 colorspacedichromat유용합니다. colorspace휠 주위의 색상을 선택할 수 있습니다. 미세 조정에 몇 시간 / 일을 소비 할 수 있습니다. dichromat색맹 검사를 도와줍니다.

ggplot2 반드시 색맹 인 증거는 아니지만 일반적으로 좋은 기본값을 갖습니다.

발산되는 빨간색에서 파란색 구성표는 컴퓨터에서는 좋아 보이지만 제대로 투사되지 않습니다.


3

또 다른 가능성은 a) LAB에서 등거리에있는 색상 세트를 찾고 b) 색맹을 고려하며 c) 가장 일반적인 CMYK 공간의 색상 영역뿐만 아니라 sRGB 색상 공간의 색상 영역에도 적합 할 수 있습니다.

마지막 요구 사항은 색상을 선택 하는 방법에 필수적이라고 생각합니다 . 화면에서 색상이 좋아 보이지만 CMYK 프로세스로 인쇄 할 때 흐리게 표시되는 경우 아무런 효과가 없습니다. OP가 "게시 품질"을 지정 했으므로 그래프가 실제로 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

선을 플로팅 할 때 프로젝터에 잘 표시되지 않는 녹색과 노란색을 조심해야합니다. 프레젠테이션에서 대부분의 플롯을 다시 사용하기 때문에 원래 의도가 스크린 또는 종이 출판 용인 경우에도 이러한 색상을 사용하지 않습니다.

고 대비를 유지하기 위해 검은 색, 빨간색, 파란색, 자홍색, 청록색으로 남겨두고 실제로 필요한 경우 회색을 사용합니다. 실제로, 이들 중 대부분은 밝고, 1 차 또는 2 차 색상입니다. 나는 그것이 미학적 관점에서 최적이 아닐 수도 있다는 것을 알고 있지만, 내가 제시하는 내용의 선명도에 더 관심이 있습니다. 반면, 제한된 팔레트에서 동일한 색상을 일관되게 재사용하는 것은 미적으로 좋은 일이 될 수 있습니다.

6 줄 이상을 사용하는 경우 더 많은 공간을 채우고 색상 블록을 그리는쪽으로 이동합니다. 이러한 종류의 음모에 대해서는 각 사례를 별도로 고려해야한다고 생각합니다. 극단이 돋보 이도록 하시겠습니까, 아니면 제로 크로싱을 원하십니까? 데이터가 주기적입니까 (예 : 0과 2π는 같은 색을 사용해야합니까)? 온도에 대해 파란색 / 빨간색과 같은 표준과 유사합니까? 흰색은 NaN을 나타내거나 데이터가 없거나 하이라이트로 사용됩니까? 등


2

컬러 블라인드 시청자에게 CARTOColorsPaul Tol의 인기있는 컬러 스킴을Safe 기반으로 하는 질적 인 컬러 블라인드 친화적 인 방식을 가지고 있습니다. 이 팔레트는 쉽게 구별 할 수있는 12 가지 색상으로 구성됩니다.

질적 인 색맹 친화적 인 또 다른 팔레트는 “Color Universal Design (CUD) : 색맹 인에게 친숙한 그림과 프리젠 테이션을 만드는 방법”에서 제안한 Okabe와 Ito 구성표입니다.

### 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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.