2009-11-26 18 views
23

Ogni volta che eseguo questo codice, la prima trama semplicemente sovrascrive quella precedente. Non c'è un modo in R di separarsi per ottenere due trame?Come separare due grafici in R?

plot(pc) 
title(main='abc',xlab='xx',ylab='yy') 

plot(pcs) 
title(main='sdf',xlab='sdf',ylab='xcv') 

risposta

14

Provare a utilizzare par prima di stampare.

par(mfrow = c(2, 1)) 
0

Se si desidera che i 2 terreni in Windows o file separati è possibile selezionare nuovi dispositivi prima di chiamare ogni comando plot. Vedi:??

Devices

E,

dev.cur

+0

oh ok, grazie per tutti i grandi suggerimenti ragazzi, imparato qualcosa di nuovo. – phpdash

38

Se si desidera solo per vedere due diverse finestre aperte di tracciato, allo stesso tempo, utilizzare dev.new, ad es

plot(1:10) 
dev.new() 
plot(10:1) 

Se si vuole disegnare due lotti nella stessa finestra, allora, come detto Shane, impostare il parametro mfrow.

par(mfrow = c(2,1)) 
plot(1:10) 
plot(10:1) 

Se volete provare qualcosa di un po 'più avanzato, allora si può dare un'occhiata al grafico reticolari o ggplot, entrambi i quali sono eccellenti per la creazione di trame condizionata (appezzamenti in cui diversi sottoinsiemi di dati appaiono in differenti cornici).

Un esempio di lattice:

library(lattice) 
dfr <- data.frame(
    x = rep(1:10, 2), 
    y = c(1:10, 10:1), 
    grp = rep(letters[1:2], each = 10) 
) 
xyplot(y ~ x | grp, data = dfr) 

Un esempio ggplot. (Avrete bisogno di scaricare ggplot da CRAN prima.)

library(ggplot2) 
qplot(x, y, data = dfr, facets = grp ~ .) 
#or equivalently 
ggplot(dfr, aes(x, y)) + geom_point() + facet_grid(grp ~ .) 
+0

grazie signore^_ ^, dev.new() funziona abbastanza bene per me – espais

+0

Devi dare un po 'di amore al parametro 'mfcol'. Riempie la trama delle trame in base a come ogni altro oggetto in R è riempito (beh, principalmente matrici). L'ho appena scoperto. Si era sempre chiesto perché le trame fossero piene di righe ...non pensare che tornerò mai a "mfrow"! – MichaelChirico

0

Una risposta alternativa è quella di assegnare la trama come un oggetto, è possibile visualizzarlo quando si vuole cioè

abcplot<-plot(pc) title(main='abc',xlab='xx',ylab='yy') 

sdfplot<-plot(pcs) title(main='sdf',xlab='sdf',ylab='xcv') 

abcplot # Displays the abc plot 
sdfplot # Displays the sdf plot 
abcplot # Displays the abc plot again 
+1

Questo non funziona. 'plot' restituisce' NULL'. Non è possibile salvare i dettagli del grafico in questo modo. Se usi la grafica basata su 'grid' (ad esempio' lattice'), ciò che suggerisci è possibile, ad es. 'p1 <- xyplot (y ~ x); stampa (p1) '. –

4

È potrebbe anche provare il comando di layout:

Prova layout(1:2)

plot(A)  
plot(B) 
2

comando Try x11() prima di ogni trama, ecco un esempio:

x11() 
plot(1:10) 
x11() 
plot(rnorm(10)) 

questo porterà a diverse finestre trama. È possibile aggiungere il comando "par" a una di queste finestre x11() e ottenere più varietà di grafici, ovvero 4 grafici in una finestra mentre un grande grafico in un'altra finestra.