geom_bar scheint am besten zu funktionieren, wenn es feste Balken hat - auch die Abstände zwischen den Balken scheinen durch die Breite zu bestimmen, laut documentation. Wenn Sie variable Breiten haben, reagiert es jedoch nicht wie erwartet, was zu Überlappungen oder Lücken zwischen den verschiedenen Balken führt (wie gezeigt here).Wie man variable Balkenbreiten in ggplot2 nicht überlappt oder Lücken macht
Um zu sehen, was ich meine, versuchen Sie dieses sehr einfach reproduzierbares Beispiel:
x <- c("a","b","c")
w <- c(1.2, 1.3, 4) # variable widths
y <- c(9, 10, 6) # variable heights
ggplot() +
geom_bar(aes(x = x, y = y, width = w, fill=x),
stat="identity", position= "stack")
Was ich wirklich will, ist für die verschiedenen Bars nur berühren zu sein, aber nicht überlappen, wie in einem Histogramm.
Ich habe versucht, position= "stack"
, "dodge"
und "fill
hinzuzufügen, aber keine Arbeit. Liegt die Lösung in geom_histogram
oder verwende ich einfach nicht geom_bar
richtig?
P. S. Um das Problem mit Lücken zu sehen, ersetzen Sie 4
durch 0.5
in dem obigen Code und sehen Sie das Ergebnis.
, die das Problem löst, vielen dank. Vielleicht sollte eine Funktion für ggplot2-Entwickler als Positionsoption hinzugefügt werden? – RobinLovelace
@RobinLovelace, kein Problem. Vielleicht könntest du versuchen, [frag] (https://github.com/hadley/ggplot2/issues) nach einem zu fragen. – Julius
Danke für den Rat. Ich tat wie für dieses https://github.com/hadley/ggplot2/issues/890, aber kann nicht auf der ggplot Probleme Seite sehen. Scheint entfernt worden zu sein - irgendwelche Ideen? – RobinLovelace