선 그림에 대한 색상 및 선 두께 권장 사항


31

일반적으로 맵, 다각형 및 음영 처리 된 영역에 대한 색맹 친화적 인 색 선택에 대해 많은 글을 썼습니다 (예 : http://colorbrewer2.org ). 선 색상에 대한 권장 사항과 선 그래프에 대한 다양한 선 두께를 찾을 수 없었습니다. 목표는 다음과 같습니다

  1. 서로 얽혀도 쉽게 선을 구분
  2. 가장 일반적인 형태의 색맹 인 개인은 선을 쉽게 구별 할 수 있습니다.
  3. 중요하지 않은 라인은 프린터 친화적입니다 (위의 컬러 브루어 참조).

검정 및 회색조 선의 맥락에서 나는 얇은 검은 선과 두꺼운 회색조 선을 갖는 것이 매우 효과적이라는 것을 알았습니다. 다양한 색상, 그레이 스케일 및 선 두께를 포함하는 특정 권장 사항을 알고 싶습니다. 나는 다양한 라인 유형 (단단하고 점선 / 점선)을 좋아하지 않지만 그 의견에서 말할 수 있습니다.

하나의 그래프에 최대 10 개의 곡선에 대한 권장 사항을 갖는 것이 좋습니다. Color Brewer가하는 것처럼하는 것이 더 좋습니다.

참고 사항 : 질문의 선 채색 부분 만 다루는 지침도 감사하겠습니다.

일부 실무자들은 다른 클래스를 더 잘 구별하기 위해 몇 센티미터마다 선에 기호를 추가합니다. 클래스를 구별하기 위해 둘 이상의 기능 (예 : 색상 + 기호 유형)이 필요하며 때로는 다른 정보를 표시하기 위해 기호를 예약하고 싶습니다.

다른 지침이 없으면 colorbrewer2.org에서 다각형에 권장되는 것과 동일한 색상을 선으로 사용하고 덜 밝거나 짙은 색상으로 그린 ​​선의 경우 선 너비에 2.5를 곱하는 것이 좋습니다. 이것을 설정하는 R 함수를 만들고 있습니다. 색상 맥주 색상 외에도 첫 번째 2 색상을 검은 색 (얇음)과 회색조 (두꺼움)로 만들 것이라고 생각하지만 얇은 검은 색과 얇은 파란색이어야한다고 주장 할 수 있습니다.

R 함수는 http://biostat.mc.vanderbilt.edu/wiki/pub/Main/RConfiguration/Rprofile 에서 찾을 수 있습니다 . 기능을 정의하면 다음 colBrew을 입력하여 설정 작동 방식을 확인할 수 있습니다

showcolBrew(number of line types)  # add grayscale=TRUE to use only grayscale

그래픽 매개 변수를 새로운 설정으로 설정 하는 기능 latticeSet도 제공 lattice됩니다. 알고리즘 개선을 환영합니다.

탐구 : R dichromat패키지 : http://cran.r-project.org/web/packages/dichromat/


2
제한된 수의 라인 유형이 매우 도움이 될 것이라고 생각했을 것입니다. 아직 언급되지 않은 또 다른 옵션은 십자가, 영점, 별표 등과 같은 개별 측정에 포인트 마커를 사용하는 것입니다.
Robert Jones

1
나에게 커브가 얽혀있을 때 포인트 마커가 완전히 효과적이지 않습니다. 그러나 나는 그들이 잘 작동하는 몇 가지 예를 보았습니다.
Frank Harrell

답변:


21

나는 여기서 도발적으로 노력할 것이며, 거의 불용성 문제이기 때문에 그러한 지침이 없는지 궁금해 할 것입니다. 매우 다른 분야의 사람들은 종종 "스파게티 음모"와 그들이 다른 시리즈를 구별하는 데 따르는 문제에 대해 동의하는 것으로 보입니다.

구체적으로, 몇몇 개별 시계열에 대한 대량의 라인은 일반적인 패턴 및 때때로 이러한 패턴과 다른 개별 시리즈를 총괄 할 수있다.

그러나 질문은 관심있는 ID가있을 때 모든 개별 시계열을 구별하는 것입니다.

2 또는 3 시리즈라고 말하면 시리즈를 구별하는 것이 일반적으로 그리 어렵지 않으며 빨간색, 파란색 또는 검은 색의 2 개 또는 3 개의 실선을 사용하는 경향이 있습니다. 나는 또한 Hastie와 친구들이 사용한 오렌지와 블루로 연주했습니다 (@ user31264의 답변 참조).

선 패턴 (단색, 대시, 점선 등)을 변경하면 제한된 값만 발견했습니다. 점선은 육체적으로나 정신적으로 씻겨지는 경향이 있으며 점과 대시의 미묘한 조합은 실제로는 성공하기에는 너무 미묘합니다 (의미, 미미 함).

10 시리즈가 나오기 오래 전에 문제가 발생한다고 말하고 싶습니다. 그것들이 매우 다르지 않으면, 5 개 정도의 시리즈는 구별하기 힘든 작업과 너무 유사 할 수 있습니다. 일반적인 심리학은 사람들이 다른 시리즈가 다른 색상 및 기호로 완벽하게 표시된다는 원칙을 이해하지만 개별 라인을 추적하고 그들의 머리의 유사점과 차이점에 대한 이야기를 들으려는 성향이 부족한 것으로 보입니다. . 이것의 일부는 종종 범례 (또는 키)의 사용에서 비롯됩니다. 논쟁의 여지가 있지만 가능한 한 그래프에 다른 시리즈에 레이블을 지정하려고합니다. 나의 좌우명은 "전설을 잃거나 가능한 경우 열쇠를 죽이십시오"입니다.

여러 시계열을 표시하는 다른 접근 방식을 모색했습니다. 여러 시계열이 여러 패널에 반복적으로 표시되지만 각 시계열마다 다른 시계열이 강조 표시됩니다. 그것은 하나의 오래된 아이디어 (a) 작은 배수 (Edward Tufte가 부르는 것처럼)와 다른 오래된 아이디어 (b)가 일련의 특별한 관심사를 강조한 것입니다. 결과적으로 그것은 또 다른 오래된 아이디어일지도 모릅니다. 그러나 지금까지는 최근 참고 문헌 만 찾을 수 있습니다. Statalist의이 스레드에서 더 많은 .

색상의 관점에서, 나는 강조되고있는 모든 것을 배경으로하는 시계열에 회색을 사용하는 것에 대해 긍정적입니다. 그것은 출판 할 가치가있는 대부분의 저널과 일치하는 것 같습니다.

여기 하나의 실험이 있습니다. 데이터는 Rothamsted 1852-1925의 Broadbalk Fields의 17 개 플롯에서 얻은 곡물 수확량이며 1985 년 AM (Eds) AM과 DF의 Andrews 에서 왔습니다 . 뉴욕 : 스프링, 표 5.1 및 다양한 장소에서 다운로드 (예를 들어, 여기 링크 설명을 입력합니다 (세부 사항 :.. 데이터는 매년 4 라인의 블록이 와서, 세 번째와 네 번째 라인은 여기에 그려진하지, 밀짚 수율있는 해당 표에는 플롯 식별자가 명시되어 있지 않습니다.)

이런 종류의 데이터에 대한 전문 지식이 없습니다. 방금 시리즈의 길이 또는 패널 수의 측면에서 (쉽게) 작은 것으로 무시할 수없는 여러 시계열을 원했습니다. (수백, 수천, ...의 패널을 보유하고 있다면이 접근법은 실제로 많은 도움이 될 수 없습니다.) 제가 상상하는 것은 데이터 분석가, 아마도 주제 전문가와 이야기 할 때 다양한 공통점을 식별 할 수 있다는 것입니다. 여기에서 흔하지 않은 행동으로 통찰력과 정보를 얻습니다.

여기에 이미지 설명을 입력하십시오

분명히이 레시피는 다른 많은 종류의 도표 (예 : 각 부분 집합이 차례로 강조된 산점도 또는 히스토그램)에 사용될 수 있습니다. 일부 흥미 롭거나 유용한 측정 또는 기준에 따라 주문 패널과 함께 (예 : 중간 값 또는 90 번째 백분위 수 또는 SD); 그리고 원시 데이터뿐만 아니라 모델 결과에도 적용됩니다.


2
서브셋 플롯에 깊은 감명을 받았습니다. 게시물에 직접 샘플 출력 이미지를 포함시킬 수 있습니까? 라인 수가 다양 할 때 얼마나 잘 작동하는지 궁금합니다. 그러나 이것은 ~ 10 라인에 대해 가장 만족스러운 솔루션입니다
Silverfish

@Silverfish 격려해 주셔서 감사합니다. 하나의 실험이 추가되었습니다.
Nick Cox

1
Nick 저는 "라벨을 잃어 버렸습니다"-원격 범례를 최소화하고 한 번에 한 곡선을 강조 표시하여 다른 사람을 어둡게 할 수 있도록 완전히 동의했습니다. . 프리젠 테이션에는 좋은 아이디어라고 생각하지만 공간 제한으로 인해 논문을 출판하는 데는 최적의 방법이 아닙니다.
Frank Harrell

인터랙티브 플롯은 곧 출판의 표준이 될 것이며 플롯의 라인 위로 마우스를 가져 가면 더 많은 정보를 얻을 수 있습니다 (전체 라인이 강조 표시되거나 툴팁을 표시하여 더 많은 정보를 제공합니다).
bdeonovic

1
@ 프랭크 하렐 (Frank Harrell) 스페이스 바이트 문제는 (1) 개별 그래프 패널이 너무 작아서 읽을 수 없을 경우 디자인의 장점이 모호합니다. (2) 저널이나 서적 편집자가 가치가있는 것으로 보이는 경우 평상시보다 더 큰 그림을위한 더 많은 공간을 할당하도록 설득 할 수없는 경우. (아마도 다른 점을 염두에 두었을 것입니다.)
Nick Cox

14

질문 2와 3은 스스로 대답했습니다-컬러 맥주 팔레트가 적합합니다. 어려운 질문은 1이지만 닉처럼 나는 그것이 거짓 희망에 기초하고 있다는 것을 두려워합니다. 선의 색은 선을 쉽게 구별 할 수있는 것이 아니라 연속성과 선이 얼마나 구불 구불한지를 기반으로합니다. 따라서 선의 색상 또는 대시 패턴 이외의 설계 기반 선택이있어 플롯을보다 쉽게 ​​해석 할 수 있습니다.

예를 들어 제한된 도메인에서 다양한 모양의 함수를 근사화하는 스플라인의 유연성을 보여주는 Frank의 다이어그램 중 하나를 훔칩니다.

#code adapted from http://biostat.mc.vanderbilt.edu/wiki/pub/Main/RmS/rms.pdf page 40
library(Hmisc)
x <- rcspline.eval(seq(0,1,.01), knots=seq(.05,.95,length=5), inclx=T)
xm <- x
xm[xm > .0106] <- NA
x <- seq(0,1,length=300)
nk <- 6
set.seed(15)
knots<-seq(.05,.95,length=nk)
xx<-rcspline.eval(x,knots=knots,inclx=T)
for(i in 1:(nk1)){
  xx[,i]<-(xx[,i]−min(xx[,i]))/
  (max(xx[,i])−min(xx[,i]))
for(i in 1:20){
  beta<-2runif(nk1)−1
  xbeta<-xx%∗%beta+2runif(1)−1
  xbeta<-(xbetamin(xbeta))/
         (max(xbeta)−min(xbeta))
  if (i==1){
  id <- i
  MyData <- data.frame(cbind(x,xbeta,id))
  }
  else {
          id <- i
          MyData <- rbind(MyData,cbind(x,xbeta,id))
       }
  }
}
MyData$id <- as.factor(MyData$id)

이제 이것은 20 라인의 복잡한 혼란을 일으켜 시각화하기가 어렵습니다.

library(ggplot2)
p1 <- ggplot(data = MyData, aes(x = x, y = V2, group = id)) + geom_line()
p1

선의 혼란

다음은 랩핑 된 패널을 사용하여 같은 크기의 작은 배수로 같은 플롯입니다. 전반적으로 비교하기는 약간 어렵지만 줄어든 공간에서도 선 모양을 시각화하는 것이 훨씬 쉽습니다.

p2 <- p1 + facet_wrap(~id) + scale_x_continuous(breaks=c(0.2,0.5,0.8))
p2

모든 20 개 패널

Stephen Kosslyn이 그의 저서에서 한 가지 요점은 얼마나 많은 다른 선이 플롯을 복잡하게 만드는지가 아니라 선이 취할 수있는 다른 유형의 모양이라는 것입니다. 20 개의 패널이 너무 작 으면 같은 패널에 배치하기 위해 유사한 궤적으로 세트를 자주 줄일 수 있습니다. 패널 내에서 선을 구별하는 것은 여전히 ​​어렵습니다. 정의에 따라 각 선은 근처에 있고 자주 겹치지 만 패널 비교 사이의 복잡성을 상당히 줄입니다. 여기서 20 줄을 임의로 4 개의 그룹으로 줄였습니다. 이것은 라인의 직접 레이블링이 더 간단하고 패널 내에 더 많은 공간이 있다는 추가 이점이 있습니다.

###############1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
newLevels <- c(1,1,2,2,2,2,2,1,1, 2, 3, 3, 3, 3, 2, 4, 1, 1, 2, 1)
MyData$idGroup <- factor(newLevels[MyData$id])
p3 <- ggplot(data = MyData, aes(x = x, y = V2, group = id)) + geom_line() + 
             facet_wrap(~idGroup)
p3

축소 된 패널

당신이 아무것도 아닌 것에 집중한다면 모든 상황에 적용 할 수있는 일반적인 문구가 있습니다 . 10 개의 라인 만있는 경우 (10*9)/2=45비교할 수있는 라인 쌍이 있습니다. 우리는 아마도 대부분의 상황에서 45 개의 모든 비교에 관심이 없을 것입니다. 특정 라인을 서로 비교하거나 한 라인을 나머지의 분포와 비교하는 데 관심이 있습니다. Nick의 답변은 후자를 잘 보여줍니다. 배경 선을 얇고 밝은 색과 반투명으로 그린 ​​다음 전경색을 밝은 색과 두껍게 그리는 것으로 충분합니다. (또한 장치의 경우 다른 선 위에 전경 선을 그려야합니다!)

얽힘에서 각 개별 선을 쉽게 구별 할 수있는 레이어링을 만드는 것이 훨씬 더 어렵습니다. 지도 제작에서 전경 배경을 차별화하는 한 가지 방법은 그림자를 사용하는 것입니다 ( Dan Carr 의이 문서를 참조하십시오 ). 최대 10 줄까지 확장 할 수 없지만 2 ~ 3 줄에 도움이 될 수 있습니다. 다음은 Excel을 사용하는 패널 1의 궤적에 대한 예입니다!

엑셀 그림자

매끄럽지 않은 궤적이있는 경우 밝은 회색 선과 같이 다른 점이있을 수 있습니다. 예를 들어 X 모양의 궤적을 두 개 또는 오른쪽과 거꾸로 한 V 모양의 두 궤적을 가질 수 있습니다. 선을 추적 할 수없는 동일한 색상을 그리기 때문에 이것이 일부를 제안하는 이유입니다 부드러운 선을 사용하여 평행 좌표 플롯을 그리거나 점을 지 터링 / 오프셋합니다 ( Graham and Kennedy, 2003 ; Dang et al., 2010 ).

따라서 설계 조언은 최종 목표와 데이터의 특성에 따라 변경 될 수 있습니다. 그러나 궤적 간의 이변 량 비교가 중요 할 때, 비슷한 궤적의 군집과 작은 배수를 사용하면 다양한 상황에서 플롯을 훨씬 쉽게 해석 할 수 있다고 생각합니다. 이것은 색상 / 라인 대시의 조합이 복잡한 플롯에있는 것보다 일반적으로 생산성이 높다고 생각합니다. 많은 기사에서 단일 패널 플롯은 필요한 것보다 훨씬 더 크며, 일반적으로 페이지 제약 조건 내에서 많은 손실없이 4 개의 패널로 분할 할 수 있습니다.


3
앤디 이것은 훌륭하다. 이 특정 스플라인 곡선 예제의 경우 20 개의 선에 5 개의 색상을 할당하는 것이 효과적이거나 더 효과적이라고 생각합니다. 항상 작동하는 거리 측정법은 없지만 주어진 상황에서 작동하는 측정법은 일반적으로 있습니다. 당신이 말했듯 이이 모든 것은 부드러움과 꼬임에 달려 있습니다.
Frank Harrell

5

Trevor Hastie 등의 "통계 학습의 요소"에서 :

"저희의 첫 번째 에디션은 색맹 독자들에게는 비우호적이었습니다. 특히 우리는 특히 번거로운 빨강 / 녹색 대비를 선호하는 경향이있었습니다. 이번 버전의 색상 팔레트를 크게 변경하여 위의 내용을 주황색 / 파란색 대비로 대체했습니다. "

그들의 그래프를보고 싶을 수도 있습니다.

점선, 점선 등을 사용할 수도 있습니다.


4

적절한 데이터 시각화와 관련하여 "선 두께"에 대한주의는 거의 보지 못했습니다. 다른 선 두께를 식별하는 기능은 색상을 식별하는 기능만큼 가변적이지 않을 수 있습니다.

일부 자료 :

  1. Hadley Wickham (2009), ggplot : 우아한 그래픽 분석 그래픽 , Springer; 지원 웹 페이지가 있습니다
  2. 데이터 시각화에 대한 8 가지 권장 도서 리소스 : http://www.tableausoftware.com/about/blog/2013/7/list-books-about-data-visualisation-24182

일부 코스 :

  1. 생물 통계학 과정을위한 Thomas Lumley 입문 컴퓨팅그래픽 강의
  2. 계산 데이터 분석 및 그래픽에 관한 Ross Ihaka의 대학원 과정
  3. Ross Ihaka의 정보 시각화에 관한 학부 과정
  4. 데보라 놀란의 학부 과정 데이터 컴퓨팅 개념
  5. Hadley Wickham의 데이터 시각화 과정

7
훌륭한 자료 목록입니다. 그러나, 당신이 간단히 언급 할 수있는 질문 (선 두께, 컬러 라인, 많은 라인이있을 수있는 라인)과 관련된 특정 권장 사항이 있습니까?
Glen_b-복원 모니카

나는 당신의 게시물을 자유롭게 만들었습니다. 구조를 더 쉽게 볼 수 있다고 생각합니다. 마음에 들지 않으면 사과와 함께 롤백하십시오.
gung-복원 Monica Monica

2

이 문제에 대한 독특한 해결책이 없다는 데 동의하지만이 블로그의 권장 사항을 사용합니다.

http://blogs.nature.com/methagora/2013/07/data-visualization-points-of-view.html

색상 관련 게시물은 색맹 및 그레이 스케일 인쇄 문제를 해결하고이 두 가지 문제를 해결하는 컬러 스케일의 예를 제공합니다.

같은 기사에서 연속 색 눈금도 분석되어 많은 열 플롯 등에 사용됩니다. 일부 예리한 전환 (노란색 영역, 빨간색보다 훨씬 작은 크기)으로 인해 무지개를 사용하지 않는 것이 좋습니다. 대신 다른 색상 쌍간에 전환 할 수 있습니다.

이 목적에 적합한 색상 세트는 파란색과 주황색입니다 (클래식!). 컬러 블라인드 및 그레이 필터를 적용하여 테스트를 수행하여 여전히 차이점을 확인할 수 있는지 확인하십시오.

선 두께에 대해서는 앞에서 언급 한 블로그 문제 중 일부가이 점을 다루고 있습니다. 선이 많으면 선의 두께가 같아야합니다. 즉 "얇습니다". 해당 개체에주의를 기울이려는 경우에만 굵은 선을 사용하십시오.


1
"굵은 선만 사용합니다"에 완전히 동의하지 않습니다. 두꺼운 밝은 회색조 선은 많은 경우에 매우 효과적 일 수 있습니다.
Frank Harrell

1
확실 할 수 있습니다. 나는 당신이 눈길을 끄는 스타일을 사용한다면 목적과 함께 사용해야한다는 것을 의미했습니다.
chuse
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.