Skip to menu

Plot inset 만들기

cardiomoon 2015.06.09 20:37 Views : 564

경우에 따라 plot 안에 다른 plot을 넣을 때가 있다. 예를 들어 0부터 2pi까지 sin값을 그래프로 그리면 다음과 같다.

require(ggplot2)
require(gridExtra)

p=ggplot(data.frame(x=c(0,2*pi)),aes(x=x))
p1=p+stat_function(fun=sin,colour="darkgreen",size=2)+theme_bw()
p1

또한 sin의 제곱 값을 그려보면 다음과 같다.

myfun2=function(x){
    sin(x)^2 
}
p2=p+stat_function(fun=myfun2,geom="area",colour="orange",fill="yellow",size=2)+
    theme_bw()+ylab(expression(sin(x)^2))

p2

또한 sin의 세제곱 값을 그려보면 다음과 같다.

myfun3=function(x){
    sin(x)^3 
}

p3<-p+stat_function(fun=myfun3,colour="blue",size=2)+
    theme_bw()+ylab(expression(sin(x)^3))
p3

이들 세개의 그래프를 하나로 그리려면 어떻게 할까 ? 여러가지 방법이 있지만 grid패키지의 viewport를 이용하는 것이 가장 간단하다. viewport()함수는 그래프의 전체 영역을 0부터 1로 생각하고 중심이 되는 x좌표,y좌표, 넓이, 높이로 정한다. 그리고 그 viewport에 출력하면 된다. 예를 들어 첫번째 plot오른쪽 위에 두번째 plot을 출력하려면 다음과 같이 하면 된다.

p1
vp2 <- viewport(x=0.75,y=0.75,width=0.4, height=0.4)
print(p2,vp=vp2)

마찬가지로 화면 왼쪽 아랫부분에 세번째 그래프를 출력하려면 다음과 같이 하면 된다.

p1
vp3 <- viewport(x=0.3,y=0.3,width=0.4, height=0.4)
print(p3,vp=vp3)

완성된 그래프에 글씨를 추가하려면 어떻게 하면 될까? grid.text를 쓰면 되는데 이떄 지정해주는 x,y좌표는 그래프 내의 좌표가 아닌 plot전체를 0부터 1까지 나는 좌표이다. 또한 글씨의 회전과 크기도 조절할 수 있다. 다음의 예를 보자.

p1
for (i in 0:10)  grid.text(i,x=i/10,y=i/10,rot=i*36,gp=gpar(fontsize=20))

세개의 그래프를 하나에 그리고 “A”,“B”,“C”등으로 주석을 추가하면 우리가 만들고 싶어하던 plot이 완성된다.

p1
print(p2,vp=vp2)
print(p3,vp=vp3)
grid.text("A",x=0.13,y=0.9,gp=gpar(fontsize=20))
grid.text("B",x=0.13,y=0.48,gp=gpar(fontsize=20))
grid.text("C",x=0.57,y=0.9,gp=gpar(fontsize=20))

No. Subject Author Date
113 object 'res' not found [3] 민자 2016.03.06
112 Standard error 질문 드립니다. [7] file R까기 2016.03.05
111 제가 금시세 표를 만들었는데 왜 업로드 파일은 이상하게 나왔나요? [1] file osr33260216 2016.03.04
110 남북한별 인구를 나타내는 막대 그래프를 만들려는데 왜 바가 않나타나죠? [1] file osr33260216 2016.03.04
109 이럴 땐 어떤 통계 기법을 쓰나요? (기초) [1] file 송이버섯 2016.03.03
108 저 이 홈피 체험 1주일 지난것같은데... [3] osr33260216 2016.03.03
107 [오류]web-r 구조방정식 [2] 마술샘 2016.02.29
106 lavaan의 공식 구글 토론실입니다 마술샘 2016.02.29
105 어제 강의 너무 잘 들었습니다 [5] 마술샘 2016.02.29
104 데이터 업로드가 되지 않습니다.. [3] jenni 2016.02.28
103 그래프가 이상하게 나와서 어떻게 하면 좋을까요? [3] file osr33260216 2016.02.25
102 [정보] 구조방정식 모형 분석 관련 참고자료 소개 [2] 보석 2016.02.24
101 Web R studio 초기화 후 문의드립니다. [2] secret 화모기 2016.02.23
100 위성지도를 그래프로 그렸는데 이것을 그림지도로 바꿀려면 어떻게 해야하죠? [1] file osr33260216 2016.02.23
99 안녕하세요 r 구조방정식 질문이 있습니다 [6] 마술샘 2016.02.23
98 Web R studio 초기화방법 문의드립니다. [4] secret 화모기 2016.02.21
97 왜 국가통계포털의 자료가 ggplot갤러리에 자료 업로드가 않되죠? [2] file osr33260216 2016.02.19
96 서버를 어디에 선택하는 것이 좋을까요? [2] file osr33260216 2016.02.19
95 [문의] Web RStudio안에서 R 패키지 설치관련 [1] 보석 2016.02.19
94 웹에서 클릭만으로 하는 R통계 [2] file osr33260216 2016.02.18