2016-06-17 15 views
2

Ich erzeuge facettiertes Balkendiagramm mit ggplot. Ich habe das Problem, dass der MWE unten das Diagramm unten erzeugt. Ich möchte, dass es Balken erzeugt, die in beiden Facetten die gleiche Breite haben. Wie würde ich darüber gehen?geom_bar Breite in ggplot2

library(ggplot2) 

df = data.frame(x = as.factor(c(1, 2, 3, 1, 2)), 
       y = c(2, 3, 4, 5, 6), 
       g = c(1, 1, 1, 2, 2)); 

ggplot(df, aes(x = 1, y = y, fill = x)) + 
    geom_bar(stat = "identity", 
      position = "dodge") + 
    facet_wrap(~ g); 

problematic image

+0

auch: http://stackoverflow.com/questions/30196143/bars-in-geom-bar-have-unwanted-different-widths-when-using-facet-wrap – beetroot

Antwort

3

Nicht sicher, ob dies ist, was Sie brauchen. Wenn Sie einen Platzhalter für die fehlende Faktorstufe mit der complete-Funktion aus dem tidyr Paket erstellen, kann die Balkenbreite auch bei zwei Facetten gleich sein. Der Nachteil ist, dass die zweite Handlung impliziert ist.

ggplot(tidyr::complete(df, x, g), aes(x = 1, y = y, fill = x)) + 
     geom_bar(stat = "identity", position = "dodge") + 
     facet_wrap(~ g); 

enter image description here

Verwandte Themen