2011-07-21 11 views
17

Diciamo che ho due set di dati, uno con intervallo y [min0: max0] e l'altro con intervallo y [min1: max1]. Come si possono mettere entrambi i grafici a scatola in un grafico uno accanto all'altro con un intervallo y sensato [min (min0, min1): max (max0, max1)]?R: Come si inseriscono due riquadri uno accanto all'altro, mantenendo lo stesso intervallo y per entrambi?

Ecco cosa ho provato:

d0 <- matrix(rnorm(15), ncol=3) 
d1 <- matrix(rnorm(15), ncol=3) 

par(mfrow = c(1, 2)) 
boxplot(d0) 
usr <- par("usr") 
plot.new() 
par(usr = usr) 
boxplot(d1, add = TRUE) 

Ma questo solo a mantenere le prime trame y-range e anche spremere entrambe le trame, mentre mi piacerebbe loro di essere quadrata.

Qualche idea?

+1

Il tuo codice non è riproducibile. Vedi http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –

+0

@ RomanLuštrik Grazie per il suggerimento; è ora. – htorque

risposta

35
d0 <- matrix(rnorm(15), ncol=3) 
d1 <- matrix(rnorm(15), ncol=3) 

# Using base R graphics 
lmts <- range(d0,d1) 

par(mfrow = c(1, 2)) 
boxplot(d0,ylim=lmts) 
boxplot(d1,ylim=lmts) 

base graphics plot

si potrebbe anche voler pensare a un modo per farlo utilizzando la grafica della griglia, sia da parte dei lattice o ggplot2 pacchetti.

Ecco un tentativo in ggplot2:

# Using ggplot2 
library(ggplot2) 
d <- data.frame(d.type=c(rep(0,15),rep(1,15)),sub.type=rep(c('A','B','C'),10),val=rnorm(30)) 

p <- ggplot(d, aes(factor(sub.type), val)) 
p + geom_boxplot() + facet_grid(. ~ d.type) 

ggplot2

E in lattice:

# Using lattice 
library(lattice) 
bwplot(~ val|sub.type+d.type ,d) 

lattice plot

Nota come le soluzioni grid-based ti impediscono di aver mai per specificare i limiti; si specifica la struttura e il software fa il resto.

+0

Hmpf, probabilmente ho letto l'argomento ylim di boxplot. Grazie! – htorque

+0

Vorrei poterti dare un altro +1 per la risposta esauriente, grazie ancora! – htorque

+0

Nah, una risposta * veramente * estesa includeva le sezioni (reticolo), l'estetica (ggplot2) e altri modi per rendere la grafica basata su griglia più carina :-) –

Problemi correlati