ggplot2:使用geom_bar绘制平均值

Cau*_*chy 22 visualization r bar-chart ggplot2

我有以下数据框:

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)))
Run Code Online (Sandbox Code Playgroud)

我正在使用以下方法绘制每组每个标签的条形图:

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

在此输入图像描述

但是,我似乎无法找到一个stat="mean"所以我可以在每个条形图而不是身份上绘制手段.

谢谢你的帮助.

uhl*_*itz 58

只需使用stat = "summary"fun.y = "mean"

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

在此输入图像描述

  • 用“ggplot 3.3.2”尝试过,似乎“fun.y”已被弃用。使用 `fun = "mean"` 来代替。 (11认同)

Uma*_*mao 5

ggplot2喜欢 1 个数据点对应 1 个绘图点。使用汇总统计数据创建一个新数据框,然后使用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")
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明