Eine Möglichkeit, einem Histogramm immer auszuweichen?

Mit ggplot2 erstelle ich ein Histogramm mit einem Faktor auf der horizontalen Achse und einem weiteren Faktor für die Füllfarbe unter Verwendung einer ausgeblendeten Position. Mein Problem ist, dass der Füllfaktor manchmal nur einen Wert für einen Wert des horizontalen Faktors annimmt und der Balken ohne Ausweichmöglichkeit die gesamte Breite einnimmt. Gibt es eine Möglichkeit, nichts auszuweichen, damit alle Balkenbreiten gleich sind? Oder äquivalent, um die Nullen zu zeichnen?

Zum Beispiel

<code>ggplot(data = mtcars, aes(x = factor(carb), fill = factor(gear))) +
geom_histogram(position = "dodge")
</code>

Diese Antwort hat ein paar ideen. Es wurde auch gefragt, bevor die neue Version veröffentlicht wurde, also hat sich vielleicht etwas geändert? Verwenden von Facetten (auch gezeigtHier) Ich mag für meine Situation nicht, obwohl ich nehme an, die Daten zu bearbeiten und zu verwendengeom_bar könnte funktionieren, aber es fühlt sich unelegant an. Außerdem habe ich beim Facettieren sowieso versucht

<code>ggplot(mtcars, aes(x = factor(carb), fill = factor(gear))) +
    geom_bar() + facet_grid(~factor(carb))
</code>

Ich erhalte die Fehlermeldung "Fehler in layout_base (data, cols, drop = drop): Mindestens eine Ebene muss alle zum Facettieren verwendeten Variablen enthalten."

Ich nehme an, ich könnte einen Datenrahmen von Zählungen erzeugen und dann verwendengeom_bar,

<code>mtcounts <- ddply(subset(mtcars, select = c("carb", "gear")),
    .fun = count, .variables = c("carb", "gear"))
</code>

Füllen Sie die Ebenen, die nicht vorhanden sind, mit Nullen aus. Weiß jemand, ob das funktionieren würde oder ob es einen besseren Weg gibt?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage