2011-10-12 20 views
10

Estoy tratando de trazar dos diagramas de caja en la misma parcela, cada uno dentro de la misma categoría. Puedo generar las gráficas de caja individualmente, pero estoy perplejo cuando trato de incluirlas en el mismo gráfico.Trazado de varios grupos de diagramas de cajas uno al lado del otro en R

Esto es lo que tengo hasta ahora:

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)) 

Esta parcela resultados en 6 diagramas de caja, primero 3 para A, luego 3 para b.

¿Hay una opción truco/simple que me falta que me dará primer valor para a y b, luego segundo y finalmente el tercer conjunto de valores, todos trazados de tal manera que hay solo tres ticks en el eje x, uno para cada uno de los conjuntos?

Cualquier punteros muy apreciadas,

Iain

Respuesta

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 El parámetro ylim = range(a, b). La escala del gráfico está determinada por el primer comando, pero si b contiene valores fuera del rango de valores en a (no en este caso, pero intente cambiar a y b), se encontrarían fuera de la trama. Es por eso que en general debe especificar el ylim aquí.

También puede establecer tick = FALSE en el comando axis(), creo que es más agradable. Si no le gusta el espacio entre los grupos, use 0:2*2 en lugar de 0:2*3, y cambie el xlim apropiadamente.

+0

¡Eso es genial! Un millón de gracias – Iain

Cuestiones relacionadas