使用ggpubr向箱线图添加星形

mwg9r5ms  于 2023-02-27  发布在  其他
关注(0)|答案(1)|浏览(201)

我有下面的代码,

  1. set.seed(15)
  2. xdf <- data.frame(
  3. values = c(
  4. rnorm(n = 20, mean = 0, sd = .4),
  5. rnorm(n = 20, mean = 0.3, sd = .7),
  6. rnorm(n = 20, mean = 0.6, sd = .15),
  7. rnorm(n = 20, mean = 0.2, sd = .4),
  8. rnorm(n = 20, mean = 0.4, sd = .4),
  9. rnorm(n = 20, mean = 0.7, sd = .5)
  10. ),
  11. groups = rep(LETTERS[1:6],each=20)
  12. )
  13. library(ggplot2)
  14. library(ggpubr)
  15. ggplot(xdf, aes(x=groups, y=values, fill=groups)) +
  16. geom_boxplot() +
  17. scale_fill_manual(values=pals::brewer.greens(6)) +
  18. theme_pubclean() +
  19. theme(legend.position = 'none') +
  20. xlab("") +
  21. ylab("Values") +
  22. stat_compare_means(ref.group="A",
  23. method = "t.test",
  24. label.y = maxvals+0.1,
  25. symnum.args = list(cutpoints = c(0, 0.0001, 0.001, 0.01, 0.05, 1),
  26. symbols = c("****", "***", "**", "*", "ns"))

生成以下曲线图:

如果我删除了ref.group="A"参数并替换为comparisons=列表,那么synum.args=就可以工作,它会用星号替换p值,而不是T-test, p=0.0016等。然而,当使用参照组时,我似乎不能像我想象的那样用星号替换p值。

kh212irz

kh212irz1#

实现所需结果的一个选项是使用after_stat来使用存储在计算变量p.signif中的标签符号:

  1. library(ggplot2)
  2. library(ggpubr)
  3. ggplot(xdf, aes(x = groups, y = values, fill = groups)) +
  4. geom_boxplot() +
  5. scale_fill_brewer(palette = "Greens") +
  6. theme_pubclean() +
  7. theme(legend.position = "none") +
  8. xlab("") +
  9. ylab("Values") +
  10. stat_compare_means(
  11. aes(label = after_stat(paste0("T-test, ", p.signif))),
  12. ref.group = "A",
  13. method = "t.test",
  14. symnum.args = list(
  15. cutpoints = c(0, 0.0001, 0.001, 0.01, 0.05, 1),
  16. symbols = c("****", "***", "**", "*", "ns")
  17. )
  18. )

展开查看全部

相关问题