경우에 따라 plot 안에 다른 plot을 넣을 때가 있다. 예를 들어 0부터 2
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))
Comment 0
No. | Subject | Author | Date |
---|---|---|---|
1053 | 통계와 관련한 기초적인 질문 드립니다.. [2] | 감사합니다 | 2021.12.10 |
1052 | 메타분석 해석 문의 [2] | 루아로 | 2021.12.07 |
1051 | 초보라 질문드립니다 ㅜ [2] | 쵸쿄쵸쿄 | 2021.12.06 |
1050 | ㅠㅠㅠ 초보 질문입니다 [1] | 만고 | 2021.11.26 |
1049 | 라벨붙이기가 안됩니다 [1] | 찬미맘 | 2021.11.22 |
1048 | moonBook ANOVA 질문드립니다. [1] | 타쿠 | 2021.11.20 |
1047 | 3원 분할표? 에서 모델 만드는법 | 플랫슬립 | 2021.11.20 |
1046 | [회귀분석 초급 질문] [1] | 서빱스 | 2021.11.14 |
1045 | [ANOVA 분석 질문] [1] | 서빱스 | 2021.11.14 |
1044 | 대조군1과 치료군2,3,4 의 PSM 에 관해서 질문있습니다. [4] | yessul | 2021.11.11 |
1043 | 서버접속이 안됩니다. Reload [2] | silkywater | 2021.11.11 |
1042 | 메타분석 실행이 안됩니다. [1] | 애플K | 2021.11.08 |
1041 | pair plot 관련하여 질문드립니다. | ulysses11 | 2021.10.29 |
1040 | 메타분석 결과파일 다운로드 하려면 [1] | mono | 2021.10.23 |
1039 | 기본 baseline character table문의드립니다. [1] | ulysses11 | 2021.10.22 |
1038 | 이 error는 뭐가 문제인 걸까요 [1] | CSJU | 2021.10.19 |
1037 | logistic regression에서 p>0.05인 변수의 OR, p 값... | 브이콘65 | 2021.10.14 |
1036 | R 문제가 도저히 안풀려요.. [1] | 자하연미필 | 2021.10.09 |
1035 | 구조방정식에서 종속변수가 0,1로 코딩된 데이터 사용이 가능한가요? [1] | 순수엄마 | 2021.10.08 |
1034 | roc.test를 통해 AUC 비교 [2] | 나현둥 | 2021.10.07 |