2012-10-23 2 views
17

plot으로 생성 된 플롯을 한 페이지에 R로 ggplot의 기능을 넣을 수있는 방법이 있습니까?'plot'과 'ggplot'이 나란히 생성 된 플롯

동일한 기능으로 만든 플롯을 par 또는 multiplot 함수를 사용하여 한 페이지에 넣기는 쉽지만 위의 질문을 이해할 수 없습니다.

+0

당신은'gridExtra' 패키지를 볼 수있다. 내 생각에 그렇게 할 수있어. – Justin

답변

26

gridBase 패키지와 viewPorts를 사용하면이 작업을 수행 할 수 있습니다.

library(grid) 
library(gridBase) 
library(ggplot2) 

# start new page 
plot.new() 

# setup layout 
gl <- grid.layout(nrow=1, ncol=2) 
# grid.show.layout(gl) 

# setup viewports 
vp.1 <- viewport(layout.pos.col=1, layout.pos.row=1) 
vp.2 <- viewport(layout.pos.col=2, layout.pos.row=1) 
# init layout 
pushViewport(viewport(layout=gl)) 
# access the first position 
pushViewport(vp.1) 

# start new base graphics in first viewport 
par(new=TRUE, fig=gridFIG()) 

plot(x = 1:10, y = 10:1) 

# done with the first viewport 
popViewport() 

# move to the next viewport 
pushViewport(vp.2) 

ggplotted <- qplot(x=1:10,y=10:1, 'point') 
# print our ggplot graphics here 
print(ggplotted, newpage = FALSE) 

# done with this viewport 
popViewport(1) 

enter image description here

이 예

Dylan Beaudette

+0

당신은 아주 청초한 대답을했습니다. 감사. – Elaine

+0

gridFIG()의 출처는 어디입니까? –

2

예에 의한 this blog post의 수정 된 버전입니다. 그것들은 그리드 기반의 그래픽 시스템과 반환 그래픽 객체입니다. gridExtra 패키지의 grid.arrange 함수를 살펴 보자.

+0

읽을 거리 * 그리드 기반 그래픽 시스템 인 경우? – mnel

+0

나는 '격자'와 'gplot2'라고 말한 이전 버전을 읽었을지도 모른다. .. 또는 내가 마시는이 맥주는 특별한 자질을 가지고있다. 당신의 대답에 대한 그것들 중 하나가 제 것입니다. –

+0

플롯 기능이 그리드 기반이 아닙니다. 아마 그게 당신이 말하는거야, DWin? 그러나 그리드 시스템에 플롯을 삽입하는 방법이 있다는 것을 읽었습니다. – JAponte