在R中的箱线图上绘制多个均值

时间:2016-03-11 19:12:18

标签: r mean boxplot

我有来自3个不同csv数据文件的3个数据集,并且我试图将它们放在一个箱子图中,每个盒子的平均点都有点。一切都很好,直到我尝试添加手段 使用下面的脚本,我得到了我想要的输出图(所以这部分都很好)......

boxplot(a$total, p$total, f$total, 
        names = c("Total", "PR", "FM"), ylab="Evals", 
        col = c("firebrick4", "red3", "tomato1"))

但是,添加平均值时遇到问题。使用points(mean(a$total), pch=18)可以在第一个框中添加我想要的内容(" Total"),但当我执行points(mean(p$total), pch=18)时,它会将p$total的平均值添加到&#34 ;总"盒子而不是" PR"框。任何帮助是极大的赞赏! All 3 mean points on first box

1 个答案:

答案 0 :(得分:0)

我有一个ggplot解决方案:

首先,一些玩具数据:

a <- data.frame(total = rnorm(50, 4, 0.3))
p <- data.frame(total = rnorm(50, 5, 0.4))
f <- data.frame(total = rnorm(50, 4, 0.25))

现在制作一个情节并使用stat_summary来获取方法:

library(ggplot2)

ggplot(a, aes(y=total, x=NA)) +
  geom_boxplot(data=a,aes(x="Total"),fill="firebrick4") +
  geom_boxplot(data=p,aes(x="PR"),fill="red3") +
  geom_boxplot(data=f,aes(x="FM"),fill="tomato1") +
  xlab("") +
  ylab("Evals") + 
  stat_summary(data = a, aes(x="Total"), fun.y = "mean", colour = "yellow", size = 3, geom = "point") +
  stat_summary(data = p, aes(x="PR"), fun.y = "mean", colour = "yellow", size = 3, geom = "point") +
  stat_summary(data = f, aes(x="FM"), fun.y = "mean", colour = "yellow", size = 3, geom = "point")

结果:

enter image description here