지난번 포스팅에서는 그래프에 추가적인 정보를 입력하는 낮은 수준의 그래프 함수(low level graphic functions) 중에서

(1) 제목, XY축 Label 추가하는 title()

(2) XY축의 형태를 변환하는 axis(side, ...)

(3) 직선 연결, 추가 : lines(x, y), abline(a, b), abline(h=y), abline(v=x)

(4) 점 추가 : points(x, y)

(5) 문자 추가 : text(x, y, labels, ...), mtext()

에 대해서 알아보았습니다.

 


이번 포스팅에서는 낮은 수준의 그래프 함수 네번째로 (6) 범례 추가 : legend(x, y, legend, ...) 에 대해서 소개하겠습니다.



[ 낮은 수준의 그래프 함수 (Low level graphic function) ]

 

 

 

범례를 추가하는 legend()함수의 일반적인 사용법은 아래와 같습니다.

 

legend(x, y = NULL, legend, fill = NULL, col = par("col"),
       border = "black", lty, lwd, pch,
       angle = 45, density = NULL, bty = "o", bg = par("bg"),
       box.lwd = par("lwd"), box.lty = par("lty"), box.col = par("fg"),
       pt.bg = NA, cex = 1, pt.cex = cex, pt.lwd = lwd,
       xjust = 0, yjust = 1, x.intersp = 1, y.intersp = 1,
       adj = c(0, 0.5), text.width = NULL, text.col = par("col"),
       text.font = NULL, merge = do.lines && has.pch, trace = FALSE,
       plot = TRUE, ncol = 1, horiz = FALSE, title = NULL,
       inset = 0, xpd, title.col = text.col, title.adj = 0.5,
       seg.len = 2) 

 

 

옵션이 굉장히 많지요?  ^^;  그래프에 관한한 R 가지고 못하는게 거의 없다는게 바로 이런 겁니다.  그런데 이걸 다 설명하자니 시간이 너무 오래걸릴것 같기도 하고 대부분은 아마 거의 사용할 일이 없을 것 같기도 합니다.  그래서 많이 사용하는 옵션 위주로 몇 개만 선별해서 어려움없이 사용할 수 있는 정도로만 설명하겠습니다.

 

 

 구분

옵션 기능 

 x, y

  범례를 추가할 위치를 설정하는 3가지 방법

  (1) x, y 좌표를 입력하면 범례 사각형의 왼쪽 상단이 그 지점에 위치함

  (2) locator(1)을 입력하면 커서를 가리키는 지점에 범례 생성

  (3) 위치를 나타내는 아래의 9개 단어 중 하나를 선택해서 입력

    : "bottomright", "bottom", "bottomleft", "left", "topleft",

      "top", "topright", "right" and "center"

 legend

  길이가 1보다 큰 문자(character) 혹은 범례를 담은 벡터(expression vector)

 col

  색깔 지정 벡터

 lty

  선 유형 지정 벡터

 lwd

  선 두께 지정 벡터

 pch

  기호 지정 벡터

...

  그래픽 모수 추가 설정 가능

 

 

 

MASS 패키지에 내장된 Cars93 데이터프레임의 차종(Type) 별로 차 무게(Weight)와 고속도로 연비 (MPG.highway) 변수를 사용해서 산포도를 그려보겠습니다. 그리고 차종(Type) 그룹에 대한 범례(legend)를 추가해보겠습니다.

 

 

(1) x, y 좌표를 직접 입력하여 범례 위치 설정

 

> # to use Cars93 dataframe
> library(MASS)
> 
> # scatter plot
> attach(Cars93)
> 
> # adding points with different characters by condition
> plot(Weight, MPG.highway, type = 'n') # blank plot
> 
> # Type = Compact
> points(Weight[Type == "Compact"], MPG.highway[Type == "Compact"], pch = 0)
> 
> # Type = Large
> points(Weight[Type == "Large"], MPG.highway[Type == "Large"], pch = 1)
> 
> # Type = Midsize
> points(Weight[Type == "Midsize"], MPG.highway[Type == "Midsize"], pch = 17, col = "yellow")
> 
> # Type = Small
> points(Weight[Type == "Small"], MPG.highway[Type == "Small"], pch = 3)
> 
> # Type = Sporty
> points(Weight[Type == "Sporty"], MPG.highway[Type == "Sporty"], pch = 9)
> 
> # Type = Van
> points(Weight[Type == "Van"], MPG.highway[Type == "Van"], pch = 15, col = "blue")
> 
> title("adding legend to the plot")
> 
> 
> # adding legend to topright side
> legend(x = 3500, y = 50, 
+        c("Compact", "Large", "Midsize", "Small", "Sporty", "Van"), 
+        col = c("black", "black", "yellow", "black", "black", "blue"), 
+        pch = c(0, 1, 17, 3, 9, 15)
+ )
>

 

 

> detach(Cars93)

 

 

 

 

(2) 위치를 나타내는 말을 직접 입력하여 범례 위치 설정

 

> library(MASS)
> # scatter plot
> attach(Cars93)
> # adding points with different characters by condition
> plot(Weight, MPG.highway, type = 'n') # blank plot
> # Type = Compact
> points(Weight[Type == "Compact"], MPG.highway[Type == "Compact"], pch = 0)
> 
> # Type = Large
> points(Weight[Type == "Large"], MPG.highway[Type == "Large"], pch = 1)
> 
> # Type = Midsize
> points(Weight[Type == "Midsize"], MPG.highway[Type == "Midsize"], pch = 17, col = "yellow")
> 
> # Type = Small
> points(Weight[Type == "Small"], MPG.highway[Type == "Small"], pch = 3)
> 
> # Type = Sporty
> points(Weight[Type == "Sporty"], MPG.highway[Type == "Sporty"], pch = 9)
> 
> # Type = Van
> points(Weight[Type == "Van"], MPG.highway[Type == "Van"], pch = 15, col = "blue")
> 
> title("adding points with different characters by Car Types")
> 
> 
> # adding legend to topright side
> legend("topright", 
+        c("Compact", "Large", "Midsize", "Small", "Sporty", "Van"), 
+        col = c("black", "black", "yellow", "black", "black", "blue"), 
+        pch = c(0, 1, 17, 3, 9, 15)
+        )
> 

 


> detach(Cars93)

 

 

 

다음번 포스팅에서는 다각형(polygon)을 추가하는 방법에 대해서 소개하겠습니다.

 

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

 

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

 

728x90
반응형
Posted by Rfriend
,