21.3 색깔 (colors) : col
, col.axis
, col.lab
, col.main
, col.sub
, fg
, bg
이번 절에서는 그래프 모수 중에서 색깔(col)을 설정하는 방법에 대해서 알아보겠습니다.
[ 색 관련 모수 별 기능 설명 ]
색 관련 모수(parameters of color) | 설명 |
---|---|
col |
기호, 선, 문자 등의 색깔을 디폴트로 지정 (default plotting color) |
col.axis |
축의 색 지정 (color for axis annotation) |
col.lab |
x 축과 y 축의 레이블 색 지정 (color for x and y labels) |
col.main |
제목 색 지정 (color for main title) |
col.sub |
부제목의 색 지정 (color for sub titles) |
fg |
그래프 테두리 색 지정 (color for foreground) |
bg |
그래프 기호의 배경 색 지정 (color for background) |
아마도 대부분은 col
모수를 주로 사용하고 나머지 색상 관련 모수는 거의 사용하지 않을 듯 합니다만, R에서는 사용자가 원하면 거의 모든 부분의 색상을 원하는대로 설정할 수 있는 극강의 자유도를 제공합니다.
21.3.1 기호, 선, 문자 등의 디폴트 색 지정 (default plotting color) : col
R에서 지원하는 색의 종류에는 657개가 있습니다. colors()
함수를 사용하면 657개 전체 색 리스트를 볼 수 가 있습니다.
##-------------------------------
## Graphical parameters : color
##-------------------------------
length(colors())
## [1] 657
colors()
## [1] "white" "aliceblue" "antiquewhite"
## [4] "antiquewhite1" "antiquewhite2" "antiquewhite3"
## [7] "antiquewhite4" "aquamarine" "aquamarine1"
## [10] "aquamarine2" "aquamarine3" "aquamarine4"
## [13] "azure" "azure1" "azure2"
## [16] "azure3" "azure4" "beige"
## [19] "bisque" "bisque1" "bisque2"
## [22] "bisque3" "bisque4" "black"
## [25] "blanchedalmond" "blue" "blue1"
## [28] "blue2" "blue3" "blue4"
## [31] "blueviolet" "brown" "brown1"
## [34] "brown2" "brown3" "brown4"
## [37] "burlywood" "burlywood1" "burlywood2"
## [40] "burlywood3" "burlywood4" "cadetblue"
## [43] "cadetblue1" "cadetblue2" "cadetblue3"
## [46] "cadetblue4" "chartreuse" "chartreuse1"
## [49] "chartreuse2" "chartreuse3" "chartreuse4"
## [52] "chocolate" "chocolate1" "chocolate2"
## [55] "chocolate3" "chocolate4" "coral"
## [58] "coral1" "coral2" "coral3"
## [61] "coral4" "cornflowerblue" "cornsilk"
## [64] "cornsilk1" "cornsilk2" "cornsilk3"
## [67] "cornsilk4" "cyan" "cyan1"
## [70] "cyan2" "cyan3" "cyan4"
## [73] "darkblue" "darkcyan" "darkgoldenrod"
## [76] "darkgoldenrod1" "darkgoldenrod2" "darkgoldenrod3"
## [79] "darkgoldenrod4" "darkgray" "darkgreen"
## [82] "darkgrey" "darkkhaki" "darkmagenta"
## [85] "darkolivegreen" "darkolivegreen1" "darkolivegreen2"
## [88] "darkolivegreen3" "darkolivegreen4" "darkorange"
## [91] "darkorange1" "darkorange2" "darkorange3"
## [94] "darkorange4" "darkorchid" "darkorchid1"
## [97] "darkorchid2" "darkorchid3" "darkorchid4"
## [100] "darkred" "darksalmon" "darkseagreen"
## [103] "darkseagreen1" "darkseagreen2" "darkseagreen3"
## [106] "darkseagreen4" "darkslateblue" "darkslategray"
## [109] "darkslategray1" "darkslategray2" "darkslategray3"
## [112] "darkslategray4" "darkslategrey" "darkturquoise"
## [115] "darkviolet" "deeppink" "deeppink1"
## [118] "deeppink2" "deeppink3" "deeppink4"
## [121] "deepskyblue" "deepskyblue1" "deepskyblue2"
## [124] "deepskyblue3" "deepskyblue4" "dimgray"
## [127] "dimgrey" "dodgerblue" "dodgerblue1"
## [130] "dodgerblue2" "dodgerblue3" "dodgerblue4"
## [133] "firebrick" "firebrick1" "firebrick2"
## [136] "firebrick3" "firebrick4" "floralwhite"
## [139] "forestgreen" "gainsboro" "ghostwhite"
## [142] "gold" "gold1" "gold2"
## [145] "gold3" "gold4" "goldenrod"
## [148] "goldenrod1" "goldenrod2" "goldenrod3"
## [151] "goldenrod4" "gray" "gray0"
## [154] "gray1" "gray2" "gray3"
## [157] "gray4" "gray5" "gray6"
## [160] "gray7" "gray8" "gray9"
## [163] "gray10" "gray11" "gray12"
## [166] "gray13" "gray14" "gray15"
## [169] "gray16" "gray17" "gray18"
## [172] "gray19" "gray20" "gray21"
## [175] "gray22" "gray23" "gray24"
## [178] "gray25" "gray26" "gray27"
## [181] "gray28" "gray29" "gray30"
## [184] "gray31" "gray32" "gray33"
## [187] "gray34" "gray35" "gray36"
## [190] "gray37" "gray38" "gray39"
## [193] "gray40" "gray41" "gray42"
## [196] "gray43" "gray44" "gray45"
## [199] "gray46" "gray47" "gray48"
## [202] "gray49" "gray50" "gray51"
## [205] "gray52" "gray53" "gray54"
## [208] "gray55" "gray56" "gray57"
## [211] "gray58" "gray59" "gray60"
## [214] "gray61" "gray62" "gray63"
## [217] "gray64" "gray65" "gray66"
## [220] "gray67" "gray68" "gray69"
## [223] "gray70" "gray71" "gray72"
## [226] "gray73" "gray74" "gray75"
## [229] "gray76" "gray77" "gray78"
## [232] "gray79" "gray80" "gray81"
## [235] "gray82" "gray83" "gray84"
## [238] "gray85" "gray86" "gray87"
## [241] "gray88" "gray89" "gray90"
## [244] "gray91" "gray92" "gray93"
## [247] "gray94" "gray95" "gray96"
## [250] "gray97" "gray98" "gray99"
## [253] "gray100" "green" "green1"
## [256] "green2" "green3" "green4"
## [259] "greenyellow" "grey" "grey0"
## [262] "grey1" "grey2" "grey3"
## [265] "grey4" "grey5" "grey6"
## [268] "grey7" "grey8" "grey9"
## [271] "grey10" "grey11" "grey12"
## [274] "grey13" "grey14" "grey15"
## [277] "grey16" "grey17" "grey18"
## [280] "grey19" "grey20" "grey21"
## [283] "grey22" "grey23" "grey24"
## [286] "grey25" "grey26" "grey27"
## [289] "grey28" "grey29" "grey30"
## [292] "grey31" "grey32" "grey33"
## [295] "grey34" "grey35" "grey36"
## [298] "grey37" "grey38" "grey39"
## [301] "grey40" "grey41" "grey42"
## [304] "grey43" "grey44" "grey45"
## [307] "grey46" "grey47" "grey48"
## [310] "grey49" "grey50" "grey51"
## [313] "grey52" "grey53" "grey54"
## [316] "grey55" "grey56" "grey57"
## [319] "grey58" "grey59" "grey60"
## [322] "grey61" "grey62" "grey63"
## [325] "grey64" "grey65" "grey66"
## [328] "grey67" "grey68" "grey69"
## [331] "grey70" "grey71" "grey72"
## [334] "grey73" "grey74" "grey75"
## [337] "grey76" "grey77" "grey78"
## [340] "grey79" "grey80" "grey81"
## [343] "grey82" "grey83" "grey84"
## [346] "grey85" "grey86" "grey87"
## [349] "grey88" "grey89" "grey90"
## [352] "grey91" "grey92" "grey93"
## [355] "grey94" "grey95" "grey96"
## [358] "grey97" "grey98" "grey99"
## [361] "grey100" "honeydew" "honeydew1"
## [364] "honeydew2" "honeydew3" "honeydew4"
## [367] "hotpink" "hotpink1" "hotpink2"
## [370] "hotpink3" "hotpink4" "indianred"
## [373] "indianred1" "indianred2" "indianred3"
## [376] "indianred4" "ivory" "ivory1"
## [379] "ivory2" "ivory3" "ivory4"
## [382] "khaki" "khaki1" "khaki2"
## [385] "khaki3" "khaki4" "lavender"
## [388] "lavenderblush" "lavenderblush1" "lavenderblush2"
## [391] "lavenderblush3" "lavenderblush4" "lawngreen"
## [394] "lemonchiffon" "lemonchiffon1" "lemonchiffon2"
## [397] "lemonchiffon3" "lemonchiffon4" "lightblue"
## [400] "lightblue1" "lightblue2" "lightblue3"
## [403] "lightblue4" "lightcoral" "lightcyan"
## [406] "lightcyan1" "lightcyan2" "lightcyan3"
## [409] "lightcyan4" "lightgoldenrod" "lightgoldenrod1"
## [412] "lightgoldenrod2" "lightgoldenrod3" "lightgoldenrod4"
## [415] "lightgoldenrodyellow" "lightgray" "lightgreen"
## [418] "lightgrey" "lightpink" "lightpink1"
## [421] "lightpink2" "lightpink3" "lightpink4"
## [424] "lightsalmon" "lightsalmon1" "lightsalmon2"
## [427] "lightsalmon3" "lightsalmon4" "lightseagreen"
## [430] "lightskyblue" "lightskyblue1" "lightskyblue2"
## [433] "lightskyblue3" "lightskyblue4" "lightslateblue"
## [436] "lightslategray" "lightslategrey" "lightsteelblue"
## [439] "lightsteelblue1" "lightsteelblue2" "lightsteelblue3"
## [442] "lightsteelblue4" "lightyellow" "lightyellow1"
## [445] "lightyellow2" "lightyellow3" "lightyellow4"
## [448] "limegreen" "linen" "magenta"
## [451] "magenta1" "magenta2" "magenta3"
## [454] "magenta4" "maroon" "maroon1"
## [457] "maroon2" "maroon3" "maroon4"
## [460] "mediumaquamarine" "mediumblue" "mediumorchid"
## [463] "mediumorchid1" "mediumorchid2" "mediumorchid3"
## [466] "mediumorchid4" "mediumpurple" "mediumpurple1"
## [469] "mediumpurple2" "mediumpurple3" "mediumpurple4"
## [472] "mediumseagreen" "mediumslateblue" "mediumspringgreen"
## [475] "mediumturquoise" "mediumvioletred" "midnightblue"
## [478] "mintcream" "mistyrose" "mistyrose1"
## [481] "mistyrose2" "mistyrose3" "mistyrose4"
## [484] "moccasin" "navajowhite" "navajowhite1"
## [487] "navajowhite2" "navajowhite3" "navajowhite4"
## [490] "navy" "navyblue" "oldlace"
## [493] "olivedrab" "olivedrab1" "olivedrab2"
## [496] "olivedrab3" "olivedrab4" "orange"
## [499] "orange1" "orange2" "orange3"
## [502] "orange4" "orangered" "orangered1"
## [505] "orangered2" "orangered3" "orangered4"
## [508] "orchid" "orchid1" "orchid2"
## [511] "orchid3" "orchid4" "palegoldenrod"
## [514] "palegreen" "palegreen1" "palegreen2"
## [517] "palegreen3" "palegreen4" "paleturquoise"
## [520] "paleturquoise1" "paleturquoise2" "paleturquoise3"
## [523] "paleturquoise4" "palevioletred" "palevioletred1"
## [526] "palevioletred2" "palevioletred3" "palevioletred4"
## [529] "papayawhip" "peachpuff" "peachpuff1"
## [532] "peachpuff2" "peachpuff3" "peachpuff4"
## [535] "peru" "pink" "pink1"
## [538] "pink2" "pink3" "pink4"
## [541] "plum" "plum1" "plum2"
## [544] "plum3" "plum4" "powderblue"
## [547] "purple" "purple1" "purple2"
## [550] "purple3" "purple4" "red"
## [553] "red1" "red2" "red3"
## [556] "red4" "rosybrown" "rosybrown1"
## [559] "rosybrown2" "rosybrown3" "rosybrown4"
## [562] "royalblue" "royalblue1" "royalblue2"
## [565] "royalblue3" "royalblue4" "saddlebrown"
## [568] "salmon" "salmon1" "salmon2"
## [571] "salmon3" "salmon4" "sandybrown"
## [574] "seagreen" "seagreen1" "seagreen2"
## [577] "seagreen3" "seagreen4" "seashell"
## [580] "seashell1" "seashell2" "seashell3"
## [583] "seashell4" "sienna" "sienna1"
## [586] "sienna2" "sienna3" "sienna4"
## [589] "skyblue" "skyblue1" "skyblue2"
## [592] "skyblue3" "skyblue4" "slateblue"
## [595] "slateblue1" "slateblue2" "slateblue3"
## [598] "slateblue4" "slategray" "slategray1"
## [601] "slategray2" "slategray3" "slategray4"
## [604] "slategrey" "snow" "snow1"
## [607] "snow2" "snow3" "snow4"
## [610] "springgreen" "springgreen1" "springgreen2"
## [613] "springgreen3" "springgreen4" "steelblue"
## [616] "steelblue1" "steelblue2" "steelblue3"
## [619] "steelblue4" "tan" "tan1"
## [622] "tan2" "tan3" "tan4"
## [625] "thistle" "thistle1" "thistle2"
## [628] "thistle3" "thistle4" "tomato"
## [631] "tomato1" "tomato2" "tomato3"
## [634] "tomato4" "turquoise" "turquoise1"
## [637] "turquoise2" "turquoise3" "turquoise4"
## [640] "violet" "violetred" "violetred1"
## [643] "violetred2" "violetred3" "violetred4"
## [646] "wheat" "wheat1" "wheat2"
## [649] "wheat3" "wheat4" "whitesmoke"
## [652] "yellow" "yellow1" "yellow2"
## [655] "yellow3" "yellow4" "yellowgreen"
위처럼 text로 색깔 이름만 있으면 알기 어려울 수도 있는데요, Earl F. Glynn 가 657개 색을 각 숫자별로 그리드에 보기 좋게 정리를 해놓았습니다.
[ Color Chart by Earl F. Glynn, Stowers Institute for Medical Research, 24 May 2005 ]
* 출처 : http://research.stowers-institute.org/efg/R/Color/Chart/index.htm
R에서 색을 지정하는 방법에는 (1) 숫자(index) 지정방법, (2) 색 이름 (color name) 지정 방법, (3) 16진수 (hexadecimal) 지정 방법, 그리고 (4) RGB 색상표 지정 방법 등의 4가지 방법이 있습니다.
숫자 (index) | 색 이름 (color name) | 16진수 (hexadecimal) | RGB triple |
---|---|---|---|
4 | (26번) blue | #0000FF | 0 0 255 |
NA | (62번) comflowerblue | #6495ED | 100 149 237 |
NA | (73번) darkblue | #00008B | 0 0 139 |
21.3.1.1 숫자(index)로 지정하는 방법
먼저 숫자(index)로 지정하는 방법은 편하긴 합니다. 그러나, 선택할 수 있는 색은 아래와 같이 8가지로 매우 제한적입니다.
index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|---|
color | 흰색(white) | 검정색(black) | 빨강색(red) | 초록색(green) | 파랑색(blue) | 청록색 (turquoise) | 자홍색(magenta) | 노란색(yellow) | 회색(gray) |
8조각의 파이 차트를 예로 살펴 보겠습니다.
# color by index 1~8
par(mfrow=c(1,2))
pie(rep(1, 8), col = 1:8)
pie(rep(1, 16), col = 1:16)
par(mfrow=c(1,1))
21.3.1.2 기타 방법
반면, (2) 이름(color name), (3) 16진법 표기 (hexadecimal), (4) RGB 색상표 (RGB triple) 은 매우 다양한 색상을 선택할 수 있는 장점이 있습니다. 아래는 Earl F. Glynn가 작성한 색상표에서 일부를 화면캡쳐한 내용인데요, 모든 색상표는 아래의 출처에 있는 pdf url에 있습니다.
* 출처 : http://research.stowers-institute.org/efg/R/Color/Chart/ColorChart.pdf
파란색(blue)에 대해서 위의 4가지 방법, 즉 (1) 숫자 (index), (2) 색 이름 (color name), (3) 16진수 (hexadecimal), (4) RGB 색상표를 사용해서 R 함수 예를 들어보겠습니다. 파란색(blue)으로 모두 똑같은 결과가 나았습니다.
library(MASS)
## 파란색(blue)을 선택하는 4가지 방법
par(mfrow = c(2,2))
# 방법 1 : index
plot(MPG.highway ~ Weight, Cars93, cex = 2, pch = 19,
col = 4, main = "col = 4 (index)")
# 방법 2 : color name
plot(MPG.highway ~ Weight, Cars93, cex = 2, pch = 19,
col = "blue", main = "col = blue (name)")
# 방법 3 : hexadecimal
plot(MPG.highway ~ Weight, Cars93, cex = 2, pch = 19,
col = "#0000FF", main = "col = #0000FF (hexadecimal)")
# 방법 4 : RGB triple
<- rgb(0, 0, 255, maxColorValue=255)
rgb_1 plot(MPG.highway ~ Weight, Cars93, cex = 2, pch = 19,
col = rgb_1, main = "col = RGB(0, 0, 255)(RGB triple)")
par(mfrow = c(1, 1))
R에서는 색상 관련해서 서로 보완(complementing)되거나 대조를 이루는(contrasting) 색상들을 미리 팔레트 형식으로 정의(defined palettes of colors)해 놓은 것이 있습니다.
예를 들면, rainbow(n)
, heat.colors(n)
, terrain.colors(n)
, topo.colors(n)
, cm.colors(n)
등이 있습니다.
example(rainbow)
함수를 이용해서 이들 색상표 palettes
를 살펴보겠습니다. 계속 Enter 치면 다음 화면으로 넘어갑니다.
example(rainbow)
colorspace
패키지는 팔레트의 선택을 위한 GUI를 제공하고 있습니다. choose_palette()
함수를 호출하면 다음과 같은 윈도우 팝업 창이 나타납니다.
# install.packages("colorspace")
library(colorspace)
choose_palette()
21.3.2 축의 색 지정
x
축과 y
축의 척도 표기 색상을 지정할 때 col.axis
모수 옵션을 사용합니다. 아래에 x
축과 y
축 척도 표기 색상으로 파랑색, 빨강색, 노랑색, 회색 등으로 바꿔가면서 그래프를 그려보았습니다.
library(MASS)
## 축의 색 지정 : col.axis
par(mfrow = c(2,2))
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
col.axis = "blue", main = "col.axis = blue")
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
col.axis = "red", main = "col.axis = red")
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
col.axis = "yellow", main = "col.axis = yellow")
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
col.axis = "gray", main = "col.axis = gray")
par(mfrow = c(1,1))
21.3.3 x
축과 y
축 레이블 색 지정
이번에는 x
축과 y
의 레이블 색을 지정하는 방법으로 col.lab
모수 옵션을 사용하면 됩니다. 파랑색, 빨강색, 노랑색, 회색으로 x축과 y축의 레이블 색을 설정하는 예를 들어보겠습니다.
library(MASS)
## x축과 y축 레이블 색 지정 : col.lab
par(mfrow = c(2,2))
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
col.lab = "blue", main = "col.lab = blue")
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
col.lab = "red", main = "col.lab = red")
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
col.lab = "yellow", main = "col.lab = yellow")
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
col.lab = "gray", main = "col.lab = gray")
par(mfrow = c(1,1))
21.3.4 제목 색 지정
그래프 제목의 색은 col.main
모수를 이용하여 색을 지정할 수 있습니다. 파랑색, 빨강색, 노랑색, 회색으로 그래프 제목의 색을 설정하는 예를 보겠습니다.
library(MASS)
## 제목 색 지정 : col.main
par(mfrow = c(2, 2))
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
col.main = "blue", main = "col.main = blue")
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
col.main = "red", main = "col.main = red")
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
col.main = "yellow", main = "col.main = yellow")
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
col.main = "gray", main = "col.main = gray")
par(mfrow = c(1,1))
21.3.5 부 제목 색 지정
그래프 부 제목의 색은 col.sub
모수를 이용하여 색을 지정할 수 있습니다. 파랑색, 빨강색, 노랑색, 회색으로 그래프 부 제목의 색을 설정하는 예를 보겠습니다.
library(MASS)
## 부 제목 색 지정 : col.sub
par(mfrow = c(2, 2))
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
col.sub = "blue", sub = "col.sub = blue")
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
col.sub = "red", sub = "col.sub = red")
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
col.sub = "yellow", sub = "col.sub = yellow")
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
col.sub = "gray", sub = "col.sub = gray")
par(mfrow = c(1,1))
21.3.6 그래프 테두리 색 지정
그래프의 전경 색은 fg =
모수를 이용하여 지정할 수 있습니다. 파랑색, 빨강색, 노랑색, 회색으로 그래프의 전경 색을 설정하는 예를 보겠습니다.
library(MASS)
## 그래프 전경 색 지정 : fg
par(mfrow = c(2, 2))
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
fg = "blue", main = "fg (foreground) = blue")
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
fg = "red", main = "fg (foreground) = red")
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
fg = "yellow", main = "fg (foreground) = yellow")
plot(MPG.highway ~ Weight, Cars93, cex = 1, pch = 21,
fg = "gray", main = "fg(foreground) = gray")
par(mfrow = c(1,1))
21.3.7 그래프 기호의 배경 색 지정
bg
는 그래프 기호의 배경색을 채울 때 사용합니다. 아래에 기호 모양 21
번 (원)에 파랑색, 빨강색, 노랑색, 회색을 채워보았습니다.
library(MASS)
## 그래프 기호의 배경 색 지정 :bg
par(mfrow = c(2, 2))
plot(MPG.highway ~ Weight, Cars93, cex = 2, pch = 21,
bg = "blue", main = "bg (background) = blue")
plot(MPG.highway ~ Weight, Cars93, cex = 2, pch = 21,
bg = "red", main = "bg (background) = red")
plot(MPG.highway ~ Weight, Cars93, cex = 2, pch = 21,
bg = "yellow", main = "bg (background) = yellow")
plot(MPG.highway ~ Weight, Cars93, cex = 2, pch = 21,
bg = "gray", main = "bg (background) = gray")
par(mfrow = c(1, 1))
bg (background color)
는 속이 비어있는 pch 21
번부터 25
번 까지만 사용가능하며, 그 외에는 적용이 안됩니다.