如何在ggplot中的箱线图上打印平均值,中位数和sd?

时间:2018-02-06 00:23:34

标签: r ggplot2 boxplot

我有以下方框图,我试图在每个方框上打印均值,中位数和sd值,这是如何工作的?在geom_boxplot中有一个简单的方法或一个简单的参数来实现吗? 感谢

ggplot(mpg,aes(x=class,y=cty))+geom_boxplot()

enter image description here

1 个答案:

答案 0 :(得分:3)

您首先需要计算摘要统计信息:

library(dplyr)

summ <- mpg %>% 
  group_by(class) %>% 
  summarize(mean = mean(cty), median = median(cty), sd = sd(cty))

然后在geom_label来电中使用该数据框。

ggplot(mpg, aes(x = class, y = cty)) + geom_boxplot() + 
  geom_label(data = summ, aes(x = class, y = mean, 
    label = paste("Mean: ", round(mean, 1), "\nMedian: ", median, "\nSD: ", round(sd, 1))))

enter image description here

不是一张好看的图表,但你只需要调整大小和颜色就可以了,或者使用geom_text代替geom_label