【问题标题】:How to print mean, median and sd on boxplots in ggplot?如何在ggplot中的箱线图上打印均值、中位数和标准差?
【发布时间】:2018-07-15 23:05:36
【问题描述】:

我有以下箱线图,我正在尝试在每个箱上打印平均值、中位数和 sd 值,它是如何工作的? geom_boxplot 中是否有简单的方法或简单的参数来实现这一点? 谢谢

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

【问题讨论】:

  • 您希望它们以文本形式出现吗?或者以某种方式显示点/线/标记?
  • @Marius 作为文本。
  • 我强烈建议将文本放在表格中,而不是在你的情节中。请注意,已经绘制了中位数,您可以使用geom_pointrange 添加均值和标准差的视觉指示

标签: r ggplot2 boxplot


【解决方案1】:

您首先需要计算汇总统计数据:

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))))

不是一个好看的图表,但您只需要调整大小和颜色来美化它,或者使用geom_text 而不是geom_label

【讨论】:

    猜你喜欢
    • 2015-04-12
    • 2019-04-02
    • 1970-01-01
    • 2019-02-06
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    • 2018-06-17
    相关资源
    最近更新 更多