지난번 포스팅에서는 R 그래프 모수(Graphical Parameters)를 설정하는 2가지 방법, 선의 유형(Line Type, lty)과 선의 두께(Line Width, lwd), 기호의 크기(Size of Character, cex) 옵션에 대해서 알아보았습니다.


이번 포스팅에서는 그래프 모수 중에서 색깔(color) 설정하는 방법에 대해서 알아보겠습니다.



[ 색 관련 모수 별 기능 설명 ]


 색 관련 모수

(parameters of color)

기능 설명 (description)

 col

 기호, 선, 문자 등의 색깔을 디폴트로 지정 (default plotting color)

 col.axis

 축의 색 지정 (color for axis annotation)

 col.lab

 x축과 y축의 Label 색 지정 (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에서는 사용자가 원하면 거의 모든 부분의 색상을 원하는대로 설정할 수 있는 극강의 자유도를 제공합니다.  R이 그래픽의 절대강자인 이유가 이처럼 다양한 모수를 제공해주는데 있습니다.  초보자라면 그냥 디폴트 옵션 사용하시면 되구요, 그래프에 욕심이 있는 분이라면 R의 색상 모수에 대해서 차근차근 공부해두시면 유용할 것입니다.


하나씩 차례대로 살펴보도록 하겠습니다.


  • 기호, 선, 문자 등의 디폴트 색 지정 (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



먼저 (1) 숫자(index)로 지정하는 방법은 편하긴 한데요, 선택할 수 있는 색은 아래와 같이 8가지가 있어서 매우 제한적입니다.

index

 0

 1

3

 color

흰색

(white)

검정색

(black) 

빨강색

(red) 

초록색

(green) 

파랑색

(blue) 

청록색 

(turquoise)

자홍색

(magenta)

노란색

(yellow) 

 회색

(gray)



> # color by index 1~8
> par(mfrow=c(1,2))
> pie(rep(1, 8), col = 1:8)
> pie(rep(1, 16), col = 1:16)



 



반면, (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)으로 모두 똑같은 결과가 나았습니다.

 

> ## 4 methods of color 'blue' exmaple : index, color name, hexadecimal, RGB
> 
> library(MASS) # to use Cars933 dataframe
> 
> par(mfrow = c(2,2))
> 
> # method 1 : index
> plot(MPG.highway ~ Weight, Cars93, cex = 2, pch = 19, 
+      col = 4, main = "col = 4 (index)")
> 
> # method 2 : color name
> plot(MPG.highway ~ Weight, Cars93, cex = 2, pch = 19, 
+      col = "blue", main = "col = blue (name)")
> 
> # method 3 : hexadecimal
> plot(MPG.highway ~ Weight, Cars93, cex = 2, pch = 19, 
+      col = "#0000FF", main = "col = #0000FF (hexadecimal)")
> 
> # method 4 : RGB triple
> rgb_1 <- rgb(0, 0, 255, maxColorValue=255)
> plot(MPG.highway ~ Weight, Cars93, cex = 2, pch = 19, 
+      col = rgb_1, main = "col = RGB(0, 0, 255)(RGB triple)")






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 치면 다음 화면으로 넘어갑니다.


[ 색상 파레트 (defined palattes of colors) ]

 

> ## example of rainbow palette's colors

> example(rainbow)

rainbw> require(graphics)

rainbw> # A Color Wheel
rainbw> pie(rep(1, 12), col = rainbow(12))



Hit <Return> to see next plot: rainbw> ##------ Some palettes ------------ rainbw> demo.pal <- rainbw+ function(n, border = if (n < 32) "light gray" else NA, rainbw+ main = paste("color palettes; n=", n), rainbw+ ch.col = c("rainbow(n, start=.7, end=.1)", "heat.colors(n)", rainbw+ "terrain.colors(n)", "topo.colors(n)", rainbw+ "cm.colors(n)")) rainbw+ { rainbw+ nt <- length(ch.col) rainbw+ i <- 1:n; j <- n / nt; d <- j/6; dy <- 2*d rainbw+ plot(i, i+d, type = "n", yaxt = "n", ylab = "", main = main) rainbw+ for (k in 1:nt) { rainbw+ rect(i-.5, (k-1)*j+ dy, i+.4, k*j, rainbw+ col = eval(parse(text = ch.col[k])), border = border) rainbw+ text(2*j, k * j + dy/4, ch.col[k]) rainbw+ } rainbw+ } rainbw> n <- if(.Device == "postscript") 64 else 16 rainbw> # Since for screen, larger n may give color allocation problem rainbw> demo.pal(n) Hit <Return> to see next plot: >





  • 축 색 지정 (color for axis annotation) : col.axis
x축과 y축의 척도 표기 색상을 지정할 때 col.axis 모수 옵션을 사용합니다.  아래에 x축과 y축 척도 표기 색상으로 파랑색, 빨강색, 노랑색, 회색으로 바꿔가면서 그래프를 그려보았습니다.

> ## color for axis annotation : col.axis

> library(MASS) # to use Cars93 dataframe > 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")


 





  • x축과 y축 Label 지정 (color for x and y labels) : col.lab
이번에는 x축과 y의 Lable 색을 지정하는 방법으로 col.lab 모수 옵션을 사용하면 됩니다.  파랑색, 빨강색, 노랑색, 회색으로 x축과 y축의 Lable 색을 설정하는 예를 들어보겠습니다.

> ## color for x and y labels : col.lab
> library(MASS)
> 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")



 




  • 제목 색 지정 (color for main title) : col.main
> ## color for main title : col.main
> library(MASS)
> 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")



 




  • 부제목 색 지정 (color for sub title) : col.sub
> ## color for sub title : col.sub
> library(MASS)
> 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")



 




  • 그래프 전경 색 지정 (color for foreground) : fg
> ## color for foreground : fg
> library(MASS)
> 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")


 





  • 그래프 배경 색 지정 (color for background) : bg
bg는 그래프 기호의 배경색을 채울 때 사용합니다.  아래에 기호 모양 21번 (원)에 파랑색, 빨강색, 노랑색, 회색을 채워보았습니다.

> ## color for background :bg
> library(MASS)
> 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")



 




bg (background color)는 속이 비어있는 pch 21번부터 25번 까지만 사용가능하며, 그 외에는 적용이 안됩니다. 아래에 pch =1 일 때 bg 옵션이 적용이 안된 것을 확인할 수 있습니다.

> ## bg (background color) only works with pch from 21 to 25
> 
> library(MASS)
> par(mfrow=c(3,2))
> 
> plot(MPG.highway ~ Weight, Cars93, cex = 2, pch = 1, 
+      bg = "blue", main = "pch = 1, bg is not working")
> 
> plot(MPG.highway ~ Weight, Cars93, cex = 2, pch = 21, 
+      bg = "blue", main = "pch = 21, bg is working")
> 
> plot(MPG.highway ~ Weight, Cars93, cex = 2, pch = 22, 
+      bg = "blue", main = "pch = 22, bg is working")
> 
> plot(MPG.highway ~ Weight, Cars93, cex = 2, pch = 23, 
+      bg = "blue", main = "pch = 23, bg is working")
> 
> plot(MPG.highway ~ Weight, Cars93, cex = 2, pch = 24, 
+      bg = "blue", main = "pch = 24, bg is working")
> 
> plot(MPG.highway ~ Weight, Cars93, cex = 2, pch = 25, 
+      bg = "blue", main = "pch = 25, bg is working")



 



다음번 포스팅에서는 그래프 영역과 내/외부 마진 모수 설정하는 방법에 대해서 알아보도록 하겠습니다.


많은 도움 되었기를 바랍니다.

 

이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^


 

728x90
반응형
Posted by Rfriend
,

지난번 포스팅에서 R 그래프 모수 (Graphical Parameters)를 설정하는 2가지 방법(par(), arguments)에 대해서 소개하였습니다.


이번 포스팅에서는 그래프 모수의 기호, 선 모수 설정에 대해서 하나씩 예를 들어보면서 자세히 설명해보겠습니다.

(그래프 모수가 70여 가지가 되므로 모두를 설명하기에는 무리가 있으며, 자주 사용하는 것들 위주로 선별해서 소개합니다. ?par 로 도움말을 찾아보시면 모든 그래프 모수에 대한 도움말을 검색할 수 있습니다)



  • 기호 (plotting symbols, characters) : pch=
그래픽 모수 pch 를 사용해서 다양한 모양의 기호, 상징을 그릴 수 있습니다.  디폴트는 pch=1 로서 속이 빈 원 모양이며, 아래의 pch 그래픽 모수 숫자별 모양을 참고해서 원하는 모양의 숫자를 pch = '숫자' 로 입력하면 되겠습니다.





MASS 패키지 내 Cars93 데이터프레임의 차 무게(Weight)와 고속도로연비(MPG.highway) 변수를 가지고 산포도 그래프를 아래와 같이 그려보았습니다. pch=1 ~ pch=6 까지 6개만 예로 들어보았습니다.

> ## symbol and character of plotting : pch=
> library(MASS)
> 
> par(mfrow = c(3,2))
> 
> 
> plot(MPG.highway ~ Weight, data = Cars93, pch = 1, main = "pch = 1")
> plot(MPG.highway ~ Weight, data = Cars93, pch = 2, main = "pch = 2")
> plot(MPG.highway ~ Weight, data = Cars93, pch = 3, main = "pch = 3")
> plot(MPG.highway ~ Weight, data = Cars93, pch = 4, main = "pch = 4")
> plot(MPG.highway ~ Weight, data = Cars93, pch = 5, main = "pch = 5")
> plot(MPG.highway ~ Weight, data = Cars93, pch = 6, main = "pch = 6")
> 
> par(mfrow = c(1,1))



 



  • 기호 직접 입력하는 방법 (specifying character directly)
pch = 1 처럼 숫자를 입력하는 방법 말고도 pch = '$', pch = '%', pch = '*'처럼 기호를 직접 pch 다음에 직접 입력해도 됩니다.


> ## specifying character directly
> par(mfrow = c(1,3))
> plot(MPG.highway ~ Weight, data = Cars93, pch = '$', main = "pch = '$' ")
> plot(MPG.highway ~ Weight, data = Cars93, pch = '%', main = "pch = '%' ")
> plot(MPG.highway ~ Weight, data = Cars93, pch = '*', main = "pch = '*' ")


 





  • 기호의 크기 : cex
cex는 기호의 크기를 지정할 때 사용합니다.  cex=1 이 디폴트 크기이며, cex 다음에 입력하는 숫자는 디폴트 대비 상대적인 크기를 나타냅니다.

> ## symbol size : cex > par(mfrow = c(2, 3)) # plot display by 2 row and 3 column > plot(MPG.highway ~ Weight, data = Cars93, pch = 19, cex = 0.5, main = "cex = 0.5") > plot(MPG.highway ~ Weight, data = Cars93, pch = 19, cex = 1, main = "cex = 1 (default)") > plot(MPG.highway ~ Weight, data = Cars93, pch = 19, cex = 1.5, main = "cex = 1.5") > plot(MPG.highway ~ Weight, data = Cars93, pch = 19, cex = 2, main = "cex = 2") > plot(MPG.highway ~ Weight, data = Cars93, pch = 19, cex = 3, main = "cex = 3") > plot(MPG.highway ~ Weight, data = Cars93, pch = 19, cex = 4, main = "cex = 4")


 




  • 선 유형 (line types) : lty
R 그래프 모수에서 제공하는 유형에는 아래과 같이 6개가 있습니다.


> ## line types : lty
> 
> # ordering by Weight
> Cars93_order <- Cars93[order(Cars93$Weight),]
> 
> par(mfrow = c(2, 3)) # plot layout by 2 row and 3 column
> plot(MPG.highway ~ Weight, data = Cars93_order, type = "l", lty = 1, main = "lty = 1")
> plot(MPG.highway ~ Weight, data = Cars93_order, type = "l", lty = 2, main = "lty = 2")
> plot(MPG.highway ~ Weight, data = Cars93_order, type = "l", lty = 3, main = "lty = 3")
> plot(MPG.highway ~ Weight, data = Cars93_order, type = "l", lty = 4, main = "lty = 4")
> plot(MPG.highway ~ Weight, data = Cars93_order, type = "l", lty = 5, main = "lty = 5")
> plot(MPG.highway ~ Weight, data = Cars93_order, type = "l", lty = 6, main = "lty = 6")



 



  • 선 두께 (line width) : lwd
선 두께를 조절하는 그래프 모수는 lwd 입니다. lwd = 1 이 디폴트 값이며, 이 숫자를 기준으로 숫자만큼 선 두께가 배수가 됩니다.  아래에 lwd = 0.5, 1, 2, 3, 4, 5 별로 선 두께가 어떻게 변화하는지 예를 들어보았습니다.  참고로, plot(x, y, dataset, type = "l") 로 하면 선 그래프 (line plot)를 그릴 수 있습니다.

> ## line width : lwd
> 
> # ordering by Weight
> Cars93_order <- Cars93[order(Cars93$Weight),]
> 
> par(mfrow = c(2, 3)) # plot display by 2 row and 3 column
> plot(MPG.highway ~ Weight, data = Cars93_order, type = "l", lwd = 0.5, main = "lwd = 0.5")
> plot(MPG.highway ~ Weight, data = Cars93_order, type = "l", lwd = 1, main = "lwd = 1 (default)")
> plot(MPG.highway ~ Weight, data = Cars93_order, type = "l", lwd = 2, main = "lwd = 2")
> plot(MPG.highway ~ Weight, data = Cars93_order, type = "l", lwd = 3, main = "lwd = 3")
> plot(MPG.highway ~ Weight, data = Cars93_order, type = "l", lwd = 4, main = "lwd = 4")
> plot(MPG.highway ~ Weight, data = Cars93_order, type = "l", lwd = 5, main = "lwd = 5")



 



  • 현재 그래프 모수 확인 (checking current graphical parameter settings) : par()
참고로, par() 함수를 쓰면 현재의 그래프 모수를 확인해볼 수 있습니다. 갯수를 세어보니 총 72개 graphical parameter 가 있네요. 

> # to see current graphical parameter settings
> par()
$xlog
[1] FALSE

$ylog
[1] FALSE

$adj
[1] 0.5

$ann
[1] TRUE

$ask
[1] FALSE

$bg
[1] "white"

$bty
[1] "o"

$cex
[1] 1

$cex.axis
[1] 1

$cex.lab
[1] 1

$cex.main
[1] 1.2

$cex.sub
[1] 1

$cin
[1] 0.2000000 0.2666667

$col
[1] "black"

$col.axis
[1] "black"

$col.lab
[1] "black"

$col.main
[1] "black"

$col.sub
[1] "black"

$cra
[1] 14.4 19.2

$crt
[1] 0

$csi
[1] 0.2666667

$cxy
[1] 0.02623142 0.05008347

$din
[1] 9.277778 7.777778

$err
[1] 0

$family
[1] ""

$fg
[1] "black"

$fig
[1] 0 1 0 1

$fin
[1] 9.277778 7.777778

$font
[1] 1

$font.axis
[1] 1

$font.lab
[1] 1

$font.main
[1] 2

$font.sub
[1] 1

$lab
[1] 5 5 7

$las
[1] 0

$lend
[1] "round"

$lheight
[1] 1

$ljoin
[1] "round"

$lmitre
[1] 10

$lty
[1] "solid"

$lwd
[1] 1

$mai
[1] 1.360000 1.093333 1.093333 0.560000

$mar
[1] 5.1 4.1 4.1 2.1

$mex
[1] 1

$mfcol
[1] 1 1

$mfg
[1] 1 1 1 1

$mfrow
[1] 1 1

$mgp
[1] 3 1 0

$mkh
[1] 0.001

$new
[1] FALSE

$oma
[1] 0 0 0 0

$omd
[1] 0 1 0 1

$omi
[1] 0 0 0 0

$page
[1] TRUE

$pch
[1] 1

$pin
[1] 7.624444 5.324444

$plt
[1] 0.1178443 0.9396407 0.1748571 0.8594286

$ps
[1] 16

$pty
[1] "m"

$smo
[1] 1

$srt
[1] 0

$tck
[1] NA

$tcl
[1] -0.5

$usr
[1] 0 1 0 1

$xaxp
[1] 0 1 5

$xaxs
[1] "r"

$xaxt
[1] "s"

$xpd
[1] FALSE

$yaxp
[1] 0 1 5

$yaxs
[1] "r"

$yaxt
[1] "s"

$ylbias
[1] 0.2

 



다음번 포스팅에서는 색깔과 관련된 그래프 모수에 대해서 알아보도록 하겠습니다.


많은 도움이 되었기를 바랍니다.

 

이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^

 

 

728x90
반응형
Posted by Rfriend
,