R 시각화 - 5 (points()등)
본문 바로가기
study/Rstudio

R 시각화 - 5 (points()등)

by hena79 2021. 1. 18.
반응형

썸네일
썸네일

작도 함수들

함수 기능
points() 점 그리기 추가
lines() 선 그리기 추가
abline() 지정된 직선 그리기 추가
segment() 선분 그리기 추가
arrows() 화살표 그리기 추가
rect() 사각형 그리기 추가
text() 테두리 내 문자열 추가
mtext() 테두리 밖 문자열 추가
title() 제목과 부제목 추가
box() 테두리 꾸밈
axis() 좌표축 그리기 추가
polygon() 다각형 추가
legend() 범례표 추가

1. 함수 points()

points()는 고수준의 함수 위에 점들을 추가한다. 또한 함수 plot()의 인수인 pch, col, cex lwd 등을 인수로 사용할 수 있다.

앞 절에서 그린 (체중, 신장)의 산점도에 다음 세 점을 추가하자.

 

(55, 165), (61, 171), (65, 178)

> plot(weight, height, pch=1, cex=2.0, col='blue', xlab='체중', ylab='신장')
> weight0=c(55, 61, 65); height0=c(165, 171, 178)
> points(weight0, height0, col='red')

 

그래프

왼쪽의 그림은 고수준 작도함수 plot()에 의해 그려진 것이며, 왼쪽은 고수준 작도함수 위에 저수준 작도함수 points()로 점(빨강)들이 추가한 것이다.

2. 함수 lines()

lines()는 고수준의 함수 위에 선들을 추가한다. 또한 함수 plot()의 인수인 col, lty, lwd 등을 인수로 사용할 수 있다.

틀만 있는 그림판 위에 몇 개의 직선을 그려보자.

그래프

> x=y=1:10
> windows(); plot(x,y, type='n') #type='n'에 의해 틀만 그려짐
> lines(x, x+1, col=1, lty=1) #라인 추가1
> lines(x, x+2, col=2, lty=2) #라인 추가2
> lines(x, x+3, col=3, lty=3) #라인 추가3

 

3. 함수 abline()

abline()은 고수준 작도 위에 정형화된 직선을 그려넣어 준다.

abline()의 사용형식
형식 기능
abline(a=a0, b=b0) y=a0+b0x의 직선을 그려 넣어준다.
abline(h=h0) 벡터로 주어진 h0 원소들 위치에 수평선을 그려 넣는다.
abline(v=v0) 벡터로 주어진 v0 원소들 위치에 수직선을 그려 넣는다.
abline(lm 객체) 또는
abline(coef=coef(lm 객체))
함수 lm()에 의해 얻은 회귀직선을 그려준다.

그래프

> windows()
> plot(weight, height, cex=2.0, col='blue', xlab='체중', ylab='신장') #산점도
> abline(h=mean(height), v=mean(weight), lty='dotted') #수평선, 수직선 추가
> abline(lm(height~weight)) #회귀직선 추가

4. 함수 text()mtext()

text()는 그림 테두리 내의 (x,y) 좌표에 문자를 삽입시켜 주며, mtext()는 테두리 밖에 문자를 삽입할 때 사용한다. 이 함수들은 plot()의 몇 가지 인수 col, cex, font 등을 인수로서 사용할 수 있다.

 

먼저 간단한 예를 들어 보자. 빈 고수준 틀에 문자를 넣어보자.

> windows(); plot(1:10, 1:10, type='n', ann=FALSE)
> text(2,8, 'AAA') #좌표 (2,8)에 문자를 삽입
> text(8,8, 'BBB', srt=45) #좌표 (8,8)에 문자를 45도 기울여 삽입
> text(2,2, 'CCC', srt=45, adj=2) #좌표 (1,8)에 문자를 45도 기울여 2칸 이동 후 삽입
> mtext('DDD') # 테두리 위쪽에 문자 삽입
> mtext('EEE', side=4, line=1) # 테두리 오른쪽에 1칸 띄어 문자 삽입
> mtext('FFF', side=1, line=2, at=8) # 테두리 아래쪽에 2칸 띄어 8위치에 문자 삽입

그래프

text()mtext()는 좌표 x, y 및 레이블이 벡터이면 동시에 여러 개 문자를 한꺼번에 넣을 수 있다. 예를 들어 체중(weight)과 신장(height)의 산점도의 각 점에 자료번호를 첨가해 보자.

> windows();
> plot(weight, height, pch=1, cex=2.0, col='blue', xlab='체중', ylab='신장')
> text(weight, height, labels=1:10, adj=2)

그래프

text()mtext()의 일반적인 사용 형식은 다음과 같다.

text()mtext()의 사용형식
형식 기능
text(x, y, labels) 그림 테두리 내의 (x[i], y[i]) 위치에 문자 labels[i]를 삽입한다.
text(x, y, labels, srt=각도, adj=칸수) 문자를 각도만큼 기울이고 칸 수만큼 띄어 삽입한다.
text(locator(n), lables) 마우스로 짝은 n 포인트 각 위치에 lables[i]를 삽입.
mtext(문자) 테두리 밖 상단에 문자를 삽입한다.
mtetx(문자, side=3, line=0, adj=0, at=NA) 주어진 side(1:아래, 2:왼쪽, 3: , 4: 오른쪽)at 위치에서 adj 칸 뛰어 문자를 출력한다.

참고x축의 레이블을 기울이는 방법

text()srt=-(회전각)을 사용해서 플롯의 x축 레이블을 회전시킬 수도 있다.

> plot(weight,height, xaxt='n')
> axis(1, labels=FALSE)
> pr=pretty(weight)
> par(xpd=TRUE)
> text(pr, par("usr")[3]-1.5, pr, srt=-45, adj=-0.1)

그래프

5. 함수 title()

title()은 플롯의 제목과 부제목을 넣는데 주로 이용된다. 인수 main에는 상단 여백에 출력할 제목을 그리고 인수 sub에는 하단 여백에 출력할 부제목을 넣는다. 이 함수는 그 외에 plot()의 인수 xlab, ylab를 사용할 수 있다.

> plot(1:10)
> title(main='제목', sub='부제목')

그래프

6. 함수 legend()

함수 legend()는 고수준 그래픽에 범례표를 넣어준다. 이 함수는 plot()의 몇 가지 인수 col, lty, lwd, pch, cex 등을 사용할 수 있다.

weight height 산점도를 출력하되 여자는 빨강 남자는 파랑색 점으로 나타내고, (70, 165) 위치에 범례표를 넣어보자.

> plot(weight, height, pch=1, cex=2.0, col=ifelse(sex=='M','blue','red'), xlab='체중', ylab='신장')
> legend(70,165, legend=c('남', '여'), pch=c(1, 1), col=c("blue", "red")) 

그래프

7. 함수 segments(), arrows(), rect()

segments(), arrows() rect()는 각각 선분, 화살표, 사각형을 기존 고수준 그래픽에 추가한다. 이 함수들은 plot()의 인수 col, lty, lwd를 사용할 수 있다.

 

> windows()
> plot(1:10)
> segments(2,2,3,3) #점 (2,2)부터 점 (3,3)까지 선분
> arrows(5,5,6,8) #점 (5,5)부터 점 (6,8)까지 회살표
> rect(6,2,9,4) #좌하점 (6,2) 및 우상점 (9,4)의 사각형

그래프

segments(), arrows() alc rect()의 사용형식
형식 기능
segments(x0, y0, x1, y1) 시점 (x0,y0)에서 종점 (x1,y1)까지의 선분
segments(x0, y0, x1, y1) 시점 (x0,y0)에서 종점 (x1,y1)까지의 화살표.
<옵션>
code=0 : 화살촉 없는 선분
code=1 : 시점에 화살촉 그림
code=2 : 종점에 화살촉 그림 (디폴트)
code=3 : 양 쪽에 화살촉 그림
length=인치 : 화살촉의 길이 지정. 디폴트는 0.25
rect(x0, y0, x1, y1) 좌하점 (x0, y0)와 우상점(x1, y1) 인 사각형
<옵션>
border='색깔' : 테두리 색깔 지정
density=수치: 내부 꾸밈선의 개수
angle=각도 : 내부 꾸밈선의 각도

8 함수 polygon()

polygon()는 각각 다각형을 기존 고수준 그래픽에 추가한다. 이 함수들은 plot()의 인수 col, lty, lwd를 사용할 수 있다.

> windows()
> plot(1:10, 1:10, type='n' )
> x=c(2,4,7,8,7,7,6,4,3)
> y=c(4,2,1,3,4,6,8,9,8)
> polygon(x,y)

그래프

polygon()의 사용형식
형식 기능
polygn(x, y) x : x 좌표점 벡터
y: y 좌표점 벡터
<옵션>
border='색깔' : 다각형 테두리 색깔
col='색깔' : 다각형의 채울 색깔
density=수치: 내부 꾸밈선의 개수
angle=각도 : 내부 꾸밈선의 각도

 

다음은 polygon()을 이용하여 표준화정규분포 영역을 색칠하여 보자.

 

그래프

> f=function(x){(2*pi)^(-1/2)* exp(-x^2/2 )}
> x=seq(-4,4,by=0.1)
> windows()
> plot(x, f(x), type='l')
> abline(h=0)

> x0=seq(0,2,by=0.1)
> x=c(x0, rev(x0))
> y=c(f(x0), rep(0,length(x0)))
> polygon(x,y, col='pink')

위 코드에서 함수 rev(x)는 벡터 x의 원소를 역순으로 정렬하는 함수이다. 예를 들어 rev(c(1,2,3))c(3,2,1)을 말한다.

 

9. 함수 grid()box()

함수 grid()는 좌표축에 격자를 추가 해주며, box()는 테두리의 선을 꾸며준다. 두 함수 모두 plot()col, lty, lwd 등의 인수를 사용할 수 있다.

 

추천

 

 

R 시각화 - 6 ( persp()...)

3차원 그래픽 3차원 그래픽스로 고수준 그래픽스 함수인 persp()와 contour()의 사용법을 다룬다. persp()는 2차원 함수 를 그려주며, contour()는 의 등고선을 그려준다. 1. persp() persp()의 기본 사용형식은.

dasoni1004.com

 

 

R 시각화 - 3(커브그래프)

1차원 함수 그래프 그리기 함수 plot은 x의 함수 f(x)를 그리는 데에도 유용하게 이용될 수 있다. y=f(x)를 그리는데 두 가지 방식을 사용 • plot(x,y) : x 벡터와 y 벡터 이용 • plot(f, x의 하한, x의 상한

dasoni1004.com

 

반응형

'study > Rstudio' 카테고리의 다른 글

R 시각화 - 7  (0) 2021.01.19
R 시각화 - 6 ( persp()...)  (0) 2021.01.19
R 시각화 - 4 ( barplot(), hist(), pie() )  (0) 2021.01.18
R 시각화 - 3(커브그래프)  (0) 2021.01.17
R 시각화 - 2(산점도 그래프)  (0) 2021.01.16