【问题标题】:Adding p-values to ggplot facets with different scales将 p 值添加到具有不同比例的 ggplot 构面
【发布时间】:2022-07-06 04:48:41
【问题描述】:

当我尝试将 p 值添加到具有不同比例的多面 ggplot 时,它们会发生偏移,尽管在 facet_wrap 到 ggplot 和 add_xy_position 到 stats 我表示 scales="free":

我的代码块:

stat_c <- dat_c %>%
  group_by(antigen , region) %>%
  wilcox_test(norm_mean ~ genotype , alternative = "greater") %>%
  adjust_pvalue(method = "bonferroni") %>%
  add_significance("p.adj") %>%
  add_xy_position(x = "region" , dodge = 0.8 , scales = "free")

plt_c <- ggplot(dat_c , aes(x = region , y = norm_mean , color = genotype)) + 
  geom_boxplot(outlier.shape=NA) +
  geom_jitter(position=position_jitterdodge()) +
  facet_wrap(~antigen , scales = "free" ) +
  ggtitle(label = "DRS hit IHC in tent5c KO")

plt_c + 
  stat_pvalue_manual(stat_c , label = "p.adj") + 
  scale_y_continuous(expand = expansion(mult = c(0,0.1)))

如果有任何帮助,我将不胜感激!

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: r ggplot2 charts p-value ggpubr


【解决方案1】:

我刚刚在处理一些数据时遇到了同样的问题。诀窍是独立计算每个方面的 pvalues 并将表格重新绑定在一起。这样,每个方面的 x 值都是独立派生的。 您的解决方案可能如下所示:

antigens = levels(factor(dat_c$antigen)) 
i = 0
res.stat.test = ""

for (a in antigens){

    print(a)
    df = dat_c %>% filter(antigen == a)
    stat.test = df %>%
    group_by(region) %>%
    wilcox_test(., norm_mean ~ genotype, alternative = "greater") %>%
    adjust_pvalue(method = "bonferroni") %>%
    add_significance("p.adj") %>%
    add_xy_position(x = "region", fun = "max", dodge = 0.8)

    if (i == 0){
    res.stat.test = stat.test
    } else {
    res.stat.test = rbind(res.stat.test, stat.test)
    }

}

plt_c <- ggplot(dat_c , aes(x = region , y = norm_mean , color = genotype)) + 
  geom_boxplot(outlier.shape=NA) +
  geom_jitter(position=position_jitterdodge()) +
  facet_wrap(~antigen , scales = "free" ) +
  stat_pvalue_manual(res.stat.test, label = "p.adj", tip.length = 0.05, step.increase = 0.01) + 
  ggtitle(label = "DRS hit IHC in tent5c KO")

【讨论】:

    猜你喜欢
    • 2021-11-12
    • 2014-12-21
    • 2018-08-07
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多