webentwicklung-frage-antwort-db.com.de

ggplot2: Plotmittelwert mit geom_bar

Ich habe den folgenden Datenrahmen:

test2 <- data.frame(groups = c(rep("group1",4), rep("group2",4)), 
    X2 = c(rnorm(4), rnorm(4)) , 
    label = c(rep(1,2),rep(2,2),rep(1,2),rep(2,2)))

und ich zeichne die Balkendiagramme für jede Beschriftung pro Gruppe mit:

ggplot(test2, aes(label, X2, fill=as.factor(groups))) + 
    geom_bar(position="dodge", stat="identity")

 enter image description here

Es scheint mir jedoch nicht möglich zu sein, einen stat="mean" zu finden, so dass ich die Mittel in jedem Balkendiagramm anstelle der Identität darstellen kann.

Danke für jede Hilfe.

17
Cauchy

benutze einfach stat = "summary" und fun.y = "mean"

ggplot(test2) + 
  geom_bar(aes(label, X2, fill = as.factor(groups)), 
           position = "dodge", stat = "summary", fun.y = "mean")

 enter image description here

44
uhlitz

ggplot2 mag 1 Datenpunkt für einen Plotpunkt. Erstellen Sie einen neuen Datenrahmen mit Ihren Übersichtsstatistiken und zeichnen Sie ihn mit stat="identity"

require(reshape2)
plot.data <- melt(tapply(test2$X2, test2$groups,mean), varnames="group", value.name="mean")

 ggplot(plot.data, aes(x=group,y=mean)) + geom_bar(position="dodge", stat="identity")

 enter image description here

3
Umaomamaomao

Versuchen Sie es mit ggpubr . Es erstellt ggplot2-ähnliche Diagramme.

library(ggpubr)

ggbarplot(test2, x = "label", y = "X2",
          add = "mean", fill = "groups")

 enter image description here

Alternativ können Sie eine Facette hinzufügen:

ggbarplot(test2, x = "label", y = "X2",
          add = "mean", fill = "groups",
          facet.by = "groups")

 enter image description here

0
epo3