R 컬러 팔레트
데이터를 시각화 할 때 가장 효과적으로 사용되는 것이 컬러이다. R에서는 컬러를 제공하기 위해 팔레트(palette)를 제공하고 팔레트에 정의된 색상 세트를 사용하는 방법을 사용한다. 이 컬러 팔레트는 여러 패키지에 설정되어 있고 각각의 패키지의 특성에 맞는 색상 세트를 제공한다. R에서 많이 사용하는 팔레트를 정의하는 패키지는 viridis
패키지, RcolorBrewer
패키지, ggplot2
패키지, ggsci
패키지 등이 많이 사용된다. 각각의 패키지 색 팔레트에 대해 알아보자.
R 컬러 팔레트의 구분
먼저 각각의 패키지에서 제공하는 팔레트를 알아보기 전에 데이터 시각화에서 사용되는 색의 용도에 따른 구분을 알아보자. 데이터 용도에 따른 색상의 배열은 다음의 세가지로 구분된다. 이해를 돕기 위해 RColorBrewer
패키지에서 구분되어 제공하는 팔레트를 살펴본다.
Sequential palettes
순차적(Sequential) 팔레트는 두개 혹은 세개의 색조로 진행하는 색들로 구성되어 있다. 그렇기 때문에 시작 색과 중간 색, 최종 색의 이름을 사용하여 팔레트 이름을 만들었다. 예를 들어 위의 팔레트 중 YlOrRd는 Yellow, Orange, Red의 세가지 색을 순차적으로 구성하는 색으로 구성되어 있다. 이 순처작 팔레트는 보통 밝은 색에서부터 시작하여 어두운 색으로 진행되는데 밝은 색은 낮은 데이터 값으로 어두운 색은 높은 데이터 값으로 매핑된다. 따라서 이 팔레트들은 보통 데이터 값이 순서를 가지거나 값의 크기에 따른 비교가 가능한 데이터들의 색을 표시할 때 표과적으로 사용된다.
Diverging palettes
분기(Diverging) 팔레트는 보통 세가지 색상을 사용하는 것은 순차 팔레트와 유사하지만 중간값을 밝은 색으로 두고 양쪽 끝으로 갈수록 어두운 색으로 퍼져나가는 방식, 즉 중간을 중심으로 양쪽으로 분기되는 형태의 팔레트이다. 이 팔레트의 이름도 순차 팔레트와 유사하게 팔레트를 구성하는 색 이름을 사용하여 만들어졌는데 RdYlGn은 중간값을 Yellow로 두고 데이터값이 작을 수록 Red가 점점 어두워지는 색으로, 데이터 값이 커질수록 Green으로 퍼져 나간다. 팔레트 이름에 색상이 두개만 지정되어 있다면 중간 색을 흰색(white)로 설정된 팔레트이다. 이 팔레트는 중간값을 기준으로 작은 값과 큰 값을 대조할 때 효과적으로 사용된다.
Qualitative palettes
질적(Qualitative) 팔레트는 앞에서 언급한 순차 팔레트나 분기 팔레트와는 달리 특정한 색조의 순서에 특별한 의미가 없다. 색상의 구성은 각각의 데이터 값 간의 구분이 명확하도록 구성되어 있다. 따라서 인접한 색들이 유사한 색으로 구성되지 않게 구성되어 있다. 따라서 데이터를 구성하는 값이 순서에 관련 없는 범주형 변수인 경우 효과적으로 사용된다.
팔레트의 구분을 살펴보았으니 이제 주요 시각화 패키지에서 제공하는 팔레트를 살펴본다.
R의 지원 색상
R에서 가장 기본적으로 지원하는 그래픽 패키지는 graphics
패키지이다. 이 패키지에서 기본적인 플롯이나 그래프를 그리기 위한 저수준(Low-Level) 함수들을 지원하는데 이 패키지에서 R의 기본적인 색상이 지원된다.
이 R에서 기본적으로 제공하는 색상은 총 657개로 이 목록은 colors()
를 실행함으로써 확인할 수 있고 색상들의 대비를 확인하기 위해서는 demo("colors")
를 사용면 확인 가능하다.
colors() |> head(100)
## [1] "white" "aliceblue" "antiquewhite" "antiquewhite1"
## [5] "antiquewhite2" "antiquewhite3" "antiquewhite4" "aquamarine"
## [9] "aquamarine1" "aquamarine2" "aquamarine3" "aquamarine4"
## [13] "azure" "azure1" "azure2" "azure3"
## [17] "azure4" "beige" "bisque" "bisque1"
## [21] "bisque2" "bisque3" "bisque4" "black"
## [25] "blanchedalmond" "blue" "blue1" "blue2"
## [29] "blue3" "blue4" "blueviolet" "brown"
## [33] "brown1" "brown2" "brown3" "brown4"
## [37] "burlywood" "burlywood1" "burlywood2" "burlywood3"
## [41] "burlywood4" "cadetblue" "cadetblue1" "cadetblue2"
## [45] "cadetblue3" "cadetblue4" "chartreuse" "chartreuse1"
## [49] "chartreuse2" "chartreuse3" "chartreuse4" "chocolate"
## [53] "chocolate1" "chocolate2" "chocolate3" "chocolate4"
## [57] "coral" "coral1" "coral2" "coral3"
## [61] "coral4" "cornflowerblue" "cornsilk" "cornsilk1"
## [65] "cornsilk2" "cornsilk3" "cornsilk4" "cyan"
## [69] "cyan1" "cyan2" "cyan3" "cyan4"
## [73] "darkblue" "darkcyan" "darkgoldenrod" "darkgoldenrod1"
## [77] "darkgoldenrod2" "darkgoldenrod3" "darkgoldenrod4" "darkgray"
## [81] "darkgreen" "darkgrey" "darkkhaki" "darkmagenta"
## [85] "darkolivegreen" "darkolivegreen1" "darkolivegreen2" "darkolivegreen3"
## [89] "darkolivegreen4" "darkorange" "darkorange1" "darkorange2"
## [93] "darkorange3" "darkorange4" "darkorchid" "darkorchid1"
## [97] "darkorchid2" "darkorchid3" "darkorchid4" "darkred"
R의 패키지별 지원 팔레트
grDevices 패키지
grDevices
패키지는 R에서 색상과 폰트를 지원하기 위한 그래픽 디바이스를 위한 패키지이다. 이 패키지는 R base
패키지와 grid
패키지를 지원하는 함수들이 포함되어 있는데 R의 가장 기본적인 그래픽을 지원하는 패키지는 graphics
패키지이나 이 패키지에서 사용이 편리한 색상과 폰트를 지원하는 패키지라고 보는 것이 타당할 것이다.
R에서는 기본적으로 grDevices
패키지를 사용하여 rainbow, heat.colors, terrain.colors, topo.colors, cm.colors의 다섯가지 팔레트가 주로 사용된다. 하지만 사실 grDevices
에서는 더 많은 팔레트를 제공한다. 이 팔레트는 R 기본 그래프를 그릴때 주로 사용되는데 다음과 같은 색상의 구조를 가진다.
ggplot2
팔레트
R에서 시각화에 가장 많이 사용하는 패키지는 ggplot2
패키지이다. ggolot()
을 사용하여 시각화할 때 특별한 색 팔레트나 색상을 지정하지 않으면 ggplot2
에서 자체적으로 가진 디폴트 색 팔레트가 사용된다. ggplot2
의 디폴트 색상 팔레트는 다음과 같다.
RColorBrewer
팔레트
RColorBrewer
패키지는 R에서 색상을 사용하는데 가장 광범위하게 사용되는 패키지이다. 특히 ggplot2
패키지의 scale_color_brewer()
가 이 패키지의 팔레트를 직접적으로 사용할 수 있도록 제공함으로써 더욱 활용도가 커지게 되었다.
viridis
팔레트
viridis
패키지와 viridisLite
패키지에서 제공하는 팔레트는 색맹이나 색각을 가지는 독자들도 그래프의 색상으로 통해 데이터의 구분이 가능하도록 설계된 색상 팔레트를 제공한다.
또 이 팔레트의 색상 구조는 흑백으로 인쇄될 때를 고려하여 설계된 색상 팔레트이기 때문에 출력물에 유용하게 사용될 수 있는 팔레트이다. 아래의 팔레트는 ggplot2
와 viridis
에서 제공하는 기본 팔레트를 흑백으로 출력했을 때의 색상 표현이다. 두 팔레트의 차이가 눈에 확 띌 것이다.
'데이터 전처리' 카테고리의 다른 글
apply, lapply, sapply, tapply in R (0) | 2022.03.12 |
---|---|
for loop, apply, 벡터 연산의 속도 차이 in R (0) | 2022.02.26 |
summarise와 mutate (0) | 2022.01.06 |
R-Studio 단축키 (0) | 2021.12.26 |
여러 열의 천단위 구분자 없애기 in R (0) | 2021.12.16 |
댓글