2011-10-12 8 views
10

Sto provando a tracciare due riquadri nella stessa trama, ognuno all'interno della stessa categoria. Posso generare i boxplot singolarmente, ma sono stumped quando provo a portarli sullo stesso grafico.Disegno di più gruppi di riquadri di dialogo affiancati in R

Ecco quello che ho finora:

a<-matrix(nrow=100,ncol=3,data=runif(300,max=2)) 
b<-matrix(nrow=100,ncol=3,data=runif(300,max=1)) 
colnames(a)<-c("case 1","case 2","case 3") 
colnames(b)<-c("case 1","case 2","case 3") 
boxplot(cbind(a,b)) 

Questo terreno si traduce in 6 boxplot, primi 3 per una, poi 3 per b.

C'è un trucco/opzione semplice che mi manca che mi darà primo valore per aeb, poi secondo e infine il terzo set di valori, tutti tracciati in modo tale che ci sono solo tre tick su l'asse x, uno per ciascuno degli insiemi?

Tutti gli indicatori molto apprezzato,

Iain

risposta

8
boxplot(a, at = 0:2*3 + 1, xlim = c(0, 9), ylim = range(a, b), xaxt = "n") 
boxplot(b, at = 0:2*3 + 2, xaxt = "n", add = TRUE) 
axis(1, at = 0:2*3 + 1.5, labels = colnames(a), tick = TRUE) 

Nota il parametro ylim = range(a, b). La scala trama è determinata dal primo comando, ma se b contiene valori fuori intervallo di valori in a (non in questo caso, ma prova a scambiare a e b), si troverebbero fuori dalla trama. Ecco perché in generale dovresti specificare lo ylim qui.

È inoltre possibile impostare tick = FALSE nel comando axis(), penso che sia più bello. Se non ti piace lo spazio tra i gruppi, usa 0:2*2 invece di 0:2*3 e modifica il xlim in modo appropriato.

+0

È fantastico! Grazie mille – Iain

Problemi correlati