2011-08-11 19 views
7

Estoy tratando de encontrar una manera ordenada de eliminar los factores no utilizados de una faceta en ggplot2. Aquí está un ejemplo mínimoEliminación de factores no utilizados de una faceta en ggplot2

# DUMMY DATA 
mydf = data.frame(
    x = rpois(6, 25), 
    y = LETTERS[1:6], 
    cat = c(rep('AA', 3), rep('BB', 3))) 

# PLOT IT! 
p0 = ggplot(mydf, aes(x = x, y = y)) + 
    geom_point() + 
    facet_wrap(~ cat, ncol = 1) 

De la figura a continuación, se puede ver que los factores D, E y F se representan en la faceta de AA a pesar de que no hay datos correspondientes. Lo que quiero es una forma de eliminar {D, E, F} de la faceta AA y del mismo modo {A, B, C} de la faceta BB.

¿Hay una manera ordenada de hacer esto, o incluso un truco sería aceptable.

enter image description here

Respuesta

11

Creo que todo lo que necesita es scales = "free_y":

p0 = ggplot(mydf, aes(x = x, y = y)) + 
    geom_point() + 
    facet_wrap(~ cat, ncol = 1,scales = "free_y") 

p0 

enter image description here

+0

agradable. debería haber publicado todo el problema, que es un caso que involucra faceting y esquiva vertical, donde 'scales = free' no funciona. lo haré una pregunta separada. Gracias – Ramnath

Cuestiones relacionadas