Ändern bar Breite bei Verwendung stat_summary mit ggplot
Ich bin mit stat_summary
in ggplot zum zeichnen eines Balkendiagramms. Ich möchte zum ändern der Breite der Balken. In der Regel geschieht dies über die width
option. Mit bereits zusammengefassten Daten und stat="identity
es funktioniert wie erwartet:
data <- data.frame(group=rep(c("a","b"), 20), y=rnorm(40,100,50))
se <- function(x, na.rm=T) sd(x, na.rm=na.rm)/sqrt(length(x))
data2 <- cast(data, group ~ ., value="y", c(mean, se))
ggplot(data2, aes(group, mean, ymin=mean-1.96*se, ymax=mean+1.96*se)) +
geom_bar(stat="identity", width=0.5) + geom_errorbar(width=0, size=2)
Jedoch in der gleichen Grundstück auf original-Daten mit stat_summary
die bars nicht ändern, Breite, während die Fehlerbalken tun:
ggplot(data, aes(group, y)) + stat_summary(fun.y="mean", geom="bar", width=0.5) +
stat_summary(fun.data="mean_cl_normal", geom="errorbar", width=0, size=2)
Gibt es eine Möglichkeit das zu ändern bar Breite, auch wenn Sie mit stat_summary
?
Da das erste Beispiel funktioniert, ist diese Frage offenbar bereits einen work-around, allerdings würde ich wirklich gerne wissen, ob es irgendeinen Weg gibt, es zu tun mit stat_summary
, denn ich nutze es viel und oft bequemer ist.
Danke!
- Herzlich willkommen auf stackoverflow. Herzlichen Glückwunsch auf eine gut geschriebene erste Frage mit einem reproduzierbaren Beispiel!!
- Ich hatte ein ähnliches problem und entdeckte Sie in der Dokumentation für stat_summary, dass die Breite ästhetik definiert werden können, in der Spaß.- Daten-Funktion.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist das Thema eines bekannten Problemen Vier hundert vier und vierzig und Zwei hundert fünf und dreißig
Die aktuelle Lösung ist die übergabe
width
innerhalbaes
-- das geht gegen die Prinzipien derggplot
(mapping vs-Einstellung), aber zumindest funktioniert es....Beachten Sie, dass Sie
linerange
wenn Sie möchten, dass die error bars ohne erro bars!