7.7 다각형 추가 : polygon(x, y, …)
이번 절에서는 낮은 수준의 그래프 함수로 polygon(x, y, ...)
함수를 이용하여 다각형을 추가하는 방법에 대해서 알아 보겠습니다.
다각형을 그리는 polygon()
함수의 일반적인 사용법은 다음과 같습니다.
polygon(x, y = NULL, density = NULL, angle = 45,
border = NULL, col = NA, lty = par("lty"),
..., fillOddEven = FALSE)
구분 | 옵션 | 설명 |
---|---|---|
x , y |
다각형의 좌표의 벡터 | |
density |
다각형 안을 채우는 음영 선의 밀도 (default 는 NULL) | |
angle |
음영있는 선의 각도 (수평선을 기준으로 해서 반시계방향) | |
border |
다각형 테두리의 색깔 | |
col |
다각형을 채우는 색깔 (default 는 NA) | |
lty |
0 = blank 1 = solid (기본 값) 2 = dashed 3 = dotted 4 = dot dash 5 = long dash 6 = two dash |
par() 함수에서 사용하는 선 유형 |
... |
추가로 그래프 모수 사용 가능 | |
fillOddEven |
다각형의 음영을 논리적으로 조절하는 모드 (default 는 FALSE) |
두 개의 삼각형을 테두리의 색깔(border
)과 선 유형(lty
), 다각형을 채우는 색깔(col
), 다각형을 채우는 선의 밀도(density
)와 각도(angle
), 색깔(col
)을 달리해서 그려보겠습니다.
x
와 y
의 좌표값의 중간에 “NA
” 가 들어있음에 주의해서 보시기 바랍니다.
##-------------------------------------
## 다각형 추가하기 : polygon(x, y, ...)
##-------------------------------------
# NA 값을 갖는 복수 개의 다각형
plot(c(1, 6), c(-3.5, 3.5), type = "n")
<- c(1, 2, 3, NA, 4, 4, 6)
x <- c(1, -3, 2, NA, -3, 3, -3)
y
polygon(x, y,
col = c("yellow", "blue"),
border = c("black", "red"),
lwd = 2,
lty = c("dotted", "solid"))
title("NA 값을 갖는 복수 개의 다각형")
아래의 다각형은 위의 예와 거의 비슷합니다. 단 한가지 차이점이라면 x, y의 좌표값에 “NA
”가 없다는 점입니다. “NA
” 가 없다보니 중간에 다각형을 분리하지를 못하고, 그냥 하나의 색깔, 선 유형, 다각형 채우는 색을 계속 사용하고 있습니다.
## NA가 없는 경우의 복수 개의 다각형
plot(c(1, 6), c(-3.5, 3.5), type = "n")
<- c(1, 2, 3, 4, 4, 6)
x <- c(1, -3, 2, -3, 3, -3)
y
polygon(x, y,
col = c("yellow", "blue"),
border = c("black", "red"),
lwd = 2,
lty = c("dotted", "solid"))
title("NA가 없는 복수 개의 다각형")
이번에는 다각형 안의 음영을 선으로 채우는 방법을 소개하겠습니다. density
로 선의 밀도(숫자가 클 수록 촘촘해짐)를 지정하고, angle
로 선의 각도(수평선을 기준으로 반시계방향)를 지정하면 됩니다.
# 선이 추가된 다각형
plot(c(1, 6), c(-3.5, 3.5), type = "n")
<- c(1, 2, 3, NA, 4, 4, 6)
x <- c(1, -3, 2, NA, -3, 3, -3)
y 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("선이 추가된 다각형")
아래 다각형은 x
, y
좌표값이 위의 예와는 좀 다릅니다. 두 좌표 값들 간의 거리에 색깔을 채워넣은 형태의 그래프인데요, polygon()
함수로 이런 그래프도 그릴 수 있다는 예시로 보면 좋겠다 싶어서 www.math.cula.edu 사이트에서 참조하였습니다.
## 색칠된 다각형
# 출처 : http://www.math.ucla.edu/~anderson/rw1001/library/base/html/polygon.html
set.seed(3232)
<- 100
n <- c(0:n, n:0)
xx <- c(c(0, cumsum(rnorm(n))), rev(c(0, cumsum(rnorm(n)))))
yy plot(xx, yy, type="n", xlab="Time", ylab="Distance")
polygon(xx, yy, col="green", border = "red")
title("색칠된 다각형")