2012-06-06 18 views
11

Ho dati con circa 30 categorie per l'asse X in due gruppi per sfaccettatura. Mostrerò questo con un po 'di dati casuali:Forza asse X su entrambi i grafici in una griglia di sfaccettatura quando i valori X sono gli stessi

dataf <- data.frame(x=c(1:30), A=rnorm(30,20,5), B=rnorm(30,15,0.5)) 
datam <- melt(dataf, id="x") 
ggplot(datam, aes(factor(x), value)) + 
    geom_bar(stat="identity") + 
    facet_grid(variable ~ .) 

enter image description here

Questo è semplicemente incantevole, tranne che sarebbe stato più facile da leggere rapidamente fuori categorie sul raggruppamento superiore se l'asse x è stato riprodotto su quel grafico pure. Tuttavia

ggplot(datam, aes(factor(x), value)) + 
    geom_bar(stat="identity") + 
    facet_grid(variable ~ ., scales="free") 

non fa alcuna differenza per l'asse x perché, immagino, i valori sono gli stessi per entrambi i raggruppamenti.

Come posso forzare la riproduzione dell'asse X per il gruppo superiore e anche per le barre?

risposta

14

Provate ad usare facet_wrap invece:

ggplot(datam, aes(factor(x), value)) + 
    geom_bar(stat="identity") + 
    facet_wrap(~variable,nrow = 2,scales = "free") 

enter image description here

Problemi correlati