2012-10-23 6 views
17

Esiste un modo per inserire la trama generata dalla funzione plot e la trama tramite la funzione ggplot in R in una pagina affiancata?grafici generati da 'plot' e 'ggplot' side-by-side

È facile inserire i grafici creati con la stessa funzione in una pagina utilizzando la funzione par o multiplot, ma non riesco a capire la domanda precedente.

+0

puoi guardare il pacchetto 'gridExtra'. Può farlo penso. – Justin

risposta

26

È possibile eseguire questa operazione utilizzando il pacchetto gridBase e 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

Questo esempio è una versione modificata del this blog post da Dylan Beaudette

+0

Hai dato una risposta molto accurata. Grazie. – Elaine

+0

Da dove proviene gridFIG()? –

2

Sì. Sono entrambi i sistemi grafici basati su griglia e restituiscono oggetti grafici. Dai un'occhiata alla funzione grid.arrange nel pacchetto gridExtra

+0

Se questa lettura * Se * sono entrambi i sistemi grafici basati su griglia? – mnel

+0

Forse stavo leggendo una versione precedente che diceva "lattice" e "ggplot2" ... o questa birra che sto bevendo ha qualità speciali. Uno di questi voti positivi per la tua risposta è mio. La funzione di trama –

+0

non è basata sulla griglia. Probabilmente è questo che ti stai riferendo, DWin? Tuttavia, ho letto che ci sono modi per incorporare la trama nel sistema della griglia. – JAponte