使用ggpubr向箱线图添加星形

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

我有下面的代码,

set.seed(15)
xdf <- data.frame(
  values = c(
rnorm(n = 20, mean = 0, sd = .4),
rnorm(n = 20, mean = 0.3, sd = .7),
rnorm(n = 20, mean = 0.6, sd = .15),
rnorm(n = 20, mean = 0.2, sd = .4),
rnorm(n = 20, mean = 0.4, sd = .4),
rnorm(n = 20, mean = 0.7, sd = .5)
),
groups = rep(LETTERS[1:6],each=20)
)


library(ggplot2)
library(ggpubr)

ggplot(xdf, aes(x=groups, y=values, fill=groups)) +
geom_boxplot() +
scale_fill_manual(values=pals::brewer.greens(6)) +
theme_pubclean() +
theme(legend.position = 'none') +
xlab("") +
ylab("Values") +  
stat_compare_means(ref.group="A", 
                 method = "t.test", 
                 label.y = maxvals+0.1,
                 symnum.args = list(cutpoints = c(0, 0.0001, 0.001, 0.01, 0.05, 1),  
                 symbols = c("****", "***", "**", "*", "ns"))

生成以下曲线图:

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

kh212irz

kh212irz1#

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

library(ggplot2)
library(ggpubr)

ggplot(xdf, aes(x = groups, y = values, fill = groups)) +
  geom_boxplot() +
  scale_fill_brewer(palette = "Greens") +
  theme_pubclean() +
  theme(legend.position = "none") +
  xlab("") +
  ylab("Values") +
  stat_compare_means(
    aes(label = after_stat(paste0("T-test, ", p.signif))),
    ref.group = "A",
    method = "t.test",
    symnum.args = list(
      cutpoints = c(0, 0.0001, 0.001, 0.01, 0.05, 1),
      symbols = c("****", "***", "**", "*", "ns")
    )
  )

相关问题