Mit ggplot2 Ich erstelle ein Histogramm mit einem Faktor auf der horizontalen Achse und einem anderen Faktor für die Füllfarbe, mit einer ausgewichenen Position. Mein Problem ist, dass der Füllfaktor manchmal nur einen Wert für einen Wert des horizontalen Faktors benötigt, und mit nichts zu umgehen, nimmt der Balken die volle Breite ein. Gibt es eine Möglichkeit, es dem Nichts auszuweichen, damit alle Balkenbreiten gleich sind? Oder äquivalent um die 0's zu plotten?Eine Möglichkeit, immer ein Histogramm auszuweichen?
Zum Beispiel
ggplot(data = mtcars, aes(x = factor(carb), fill = factor(gear))) +
geom_histogram(position = "dodge")
This answer hat ein paar Ideen. Es wurde auch gefragt, bevor die neue Version veröffentlicht wurde, also hat sich vielleicht etwas geändert? Facetten verwenden (auch gezeigt here) Ich mag nicht für meine Situation, obwohl ich denke, die Bearbeitung der Daten und Verwendung von geom_bar
könnte funktionieren, aber es fühlt sich unelegant. Außerdem, wenn ich versuchte, Facettieren sowieso
ggplot(mtcars, aes(x = factor(carb), fill = factor(gear))) +
geom_bar() + facet_grid(~factor(carb))
ich den Fehler "Fehler in layout_base (Daten, cols, Tropfen = drop): Mindestens eine Schicht alle Variablen für Facettieren verwendet werden, enthalten muss"
I Angenommen, ich könnte einen Datenrahmen von Zählungen erzeugen und dann geom_bar
verwenden,
mtcounts <- ddply(subset(mtcars, select = c("carb", "gear")),
.fun = count, .variables = c("carb", "gear"))
die Ebene ausfüllen, die mit 0 ist nicht vorhanden ist. Weiß jemand, ob das funktioniert oder ob es einen besseren Weg gibt?
Ich weiß, dass Sie es nicht ideal betrachten, aber ich denke, die Grafen Vorausberechnen und geom_bar unter Verwendung wäre meine bevorzugte Art und Weise, dies zu tun sein. – joran