首页 > 解决方案 > 如何使用带有分组的数据框在 ggplot2 箱线图中添加均值?

问题描述

我有这个名为的数据框prepared_data_frame,其中包含...

数据框内容

+-----------------------+----------+-------+
|         name          |  month   | value |
+-----------------------+----------+-------+
| Bacterial leaf blight | July     |   1.3 |
| Bacterial leaf blight | ...      |   ... |
| Bacterial leaf blight | December |   5.9 |
| Bacterial leaf streak | July     |   2.7 |
| Bacterial leaf streak | ...      |   ... |
| Bacterial leaf streak | December |   3.8 |
| ...                   | ...      |   ... |
| Leaf blast            | July     |   1.3 |
| Leaf blast            | ...      |   ... |
| Leaf blast            | December |   5.9 |
| Red stripe            | July     |   2.7 |
| Red stripe            | ...      |   ... |
| Red stripe            | December |   3.8 |
+-----------------------+----------+-------+

R 脚本

ggplot(prepared_data_frame, aes(x=prepared_data_frame$month, y=prepared_data_frame$value, fill=prepared_data_frame$name)) +
    geom_boxplot(width=0.85, size = 1, outlier.size=0.5,colour=black) +
    stat_summary(fun.y=mean, colour=red, geom="point", size=3) +
    theme_minimal() +
    theme(
      legend.position=c(0.5, 0.95),
      legend.direction="horizontal",
      legend.background=element_rect(fill=white,color=grey,size=0.5),
      legend.text=element_text(size=15,margin=margin(t = 5, r = 10, b = 5, l = 5, unit = "pt")),
      legend.title = element_blank(),
      axis.line = element_line(color = grey, size=0.5),
      axis.text.x = element_text(color=black, size=15),
      axis.text.y = element_text(color=black, size=15),
      axis.title = element_text(face="plain"),
      axis.title.y = element_text(color=black,face="plain",size=15),
      axis.title.x = element_blank() ) +
    scale_y_continuous(breaks=seq(0,50,5),minor_breaks=NULL,limits=c(0,50)) +
    labs(y = "Incidence (%)")

输出

r 脚本输出

问题

用红点绘制的分组平均值s不能很好地与其相应的箱线图平行绘制。我错过了关于stat_summary()函数的使用吗?我们如何使用带有分组的数据框在 ggplot2 箱线图中添加均值?

标签: rggplot2meanboxplot

解决方案


推荐阅读