지난번 포스팅에서는 그래프에 추가적인 정보를 입력하는 낮은 수준의 그래프 함수(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, ...)
에 대해서 알아보았습니다.
이번 포스팅에서는 낮은 수준의 그래프 함수 네번째로 (7) 다각형 추가 : polygon(x, y, ...) 에 대해서 소개하겠습니다.
[ 낮은 수준의 그래프 함수 (Low level graphic function) ]
다각형을 그리는 polygon() 함수의 일반적인 사용법은 다음과 같습니다.
polygon(x, y = NULL, density = NULL, angle = 45, |
구분 |
기능 설명 |
x, y |
다각형의 좌표의 벡터 |
density |
다각형 안을 채우는 음영 선의 밀도 (default 는 NULL) |
angle |
음영있는 선의 각도 (수평선을 기준으로 해서 반시계방향) |
border |
다각형 테두리의 색깔 |
col |
다각형을 채우는 색깔 (default 는 NA) |
lty |
par() 에서 사용하는 선 유형 : 0=blank, 1=solid (default), 2=dashed, 3=dotted, 4=dotdash, 5=longdash, 6=twodash |
... |
추가로 그래프 모수 사용 가능 |
fillOddEven |
다각형의 음영을 논리적으로 조절하는 모드 (default 는 FALSE) |
두 개의 삼각형을 테두리의 색깔(border)과 선 유형(lty), 다각형을 채우는 색깔(col), 다각형을 채우는 선의 밀도(density)와 각도(angle), 색깔(col)을 달리해서 그려보겠습니다.
x와 y의 좌표값의 중간에 "NA" value가 들어갔음에 주의해서 보시기 바랍니다.
> ##------------------------------------- > ## polygon : polygon(x, y, ...) > ##------------------------------------- > > # Multiple polygons from NA values > > plot(c(1, 6), c(-3.5, 3.5), type = "n") > x <- c(1, 2, 3, NA, 4, 4, 6) > y <- c(1, -3, 2, NA, -3, 3, -3) > polygon(x, y, + col = c("yellow", "blue"), + border = c("black", "red"), + lwd = 2, + lty = c("dotted", "solid")) > title("Multiple polygons from NA values")
|
아래의 다각형은 위와 R script가 거의 동일한데요, 단 한가지 차이점이라면 x, y의 좌표값에 "NA" value가 없다는 점입니다. "NA" value가 없다보니 R은 중간에 다각형을 분리하지를 못하고, 그냥 하나의 색깔, 선 유형, 다각형 채우는 색을 계속 사용하고 있습니다.
> ## what if no NA value > plot(c(1, 6), c(-3.5, 3.5), type = "n") > x <- c(1, 2, 3, 4, 4, 6) > y <- c(1, -3, 2, -3, 3, -3) > polygon(x, y, + col = c("yellow", "blue"), + border = c("black", "red"), + lwd = 2, + lty = c("dotted", "solid")) > title("Multiple polygons without NA value")
|
이번에는 다각형 안의 음영을 선으로 채우는 방법을 소개하겠습니다. density 로 선의 밀도(숫자가 클 수록 촘촘해짐)를 지정하고, angle 로 선의 각도(수평선을 기준으로 반시계방향)를 지정하면 됩니다.
> # Line-shaded polygons > plot(c(1, 6), c(-3.5, 3.5), type = "n") > x <- c(1, 2, 3, NA, 4, 4, 6) > y <- c(1, -3, 2, NA, -3, 3, -3) > polygon(x, y, + col = c("yellow", "blue"), + border = c("black", "red"), + lwd = 2, + lty = c("dotted", "solid"), + density = c(10, 20), + angle = c(45, -45)) > title("Multiple polygons with Line-shaded density")
|
아래 다각형은 x, y 좌표값이 위에서 든 예시와는 좀 다르지요? 두개의 좌표값들 간의 거리에 색깔을 채워넣은 형태의 그래프인데요, polygon() 함수로 이런 그래프도 그릴 수 있다는 예시로 보면 좋겠다 싶어서 www.math.cula.edu 사이트에서 참조하였습니다.
> ## Color-shaded polygon > # exmaple source : http://www.math.ucla.edu/~anderson/rw1001/library/base/html/polygon.html > n <- 100 > xx <- c(0:n, n:0) > yy <- c(c(0,cumsum(rnorm(n))), rev(c(0,cumsum(rnorm(n))))) > plot (xx, yy, type="n", xlab="Time", ylab="Distance") > polygon(xx, yy, col="gray", border = "red") > title("Distance Between Brownian Motions")
|
* R script source : http://www.math.ucla.edu/~anderson/rw1001/library/base/html/polygon.html
많은 도움 되었기를 바랍니다.
이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^
'R 분석과 프로그래밍 > R 그래프_시각화' 카테고리의 다른 글
R 다변량 그래프 (2) 별 그래프 (star graph, segment diagrams) (0) | 2016.02.12 |
---|---|
R 다변량 그래프 (1) 레이더 차트(radar chart), or 거미줄 그림(spider plot) (0) | 2016.02.11 |
R Graphics 낮은 수준의 그래프 함수 (6) 범례 추가 : legend(x, y, legend, ...) (0) | 2016.01.10 |
R Graphics 낮은 수준의 그래프 함수 (5) 문자 추가 : text(x, y, labels, ...), mtext() (0) | 2016.01.10 |
R Graphics 낮은 수준의 그래프 함수 (4) 점 추가 : points(x, y) (0) | 2016.01.09 |