通过对变量进行分组来绘制均值比较的 pvalue 信息

NCo*_*oll 3 r ggplot2 ggpubr

我已经整理了一个图来分别查看组,但现在想要在图中包含平均成对比较的显着性水平。虽然我可以在情节之外进行比较,但我想知道在情节中包含比较的最有效方法是什么?

当前情节

library(tidyverse)

dsub <- diamonds[ sample(nrow(diamonds), 10000), ]

dsub <- dsub %>%
  filter(clarity %in% c('VS2', 'VS1', 'VVS2'))

ggplot(dsub, aes(x = cut, y = carat, fill = clarity)) +
  geom_boxplot(outlier.size = 0) +
  geom_point(pch = 21, position = position_jitterdodge()) 
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

现在,我想补充的比较,每个等级内的的cut变量各个层次之间的的clarity变量。我更喜欢使用,ggpubr但看不到哪里可以实现。

Chu*_*k P 5

编辑以考虑输出的 OP 偏好

啊哈...好吧,让我至少为您节省一堆垂直空间并通过克服rstatix不尊重因子顺序并ggpubr希望其组作为特征而不是因子的事实来整理事物。

library(ggplot2)
library(dplyr)

dsub <- diamonds[ sample(nrow(diamonds), 10000), ]
dsub <- dsub %>%
   filter(clarity %in% c('VS2', 'VS1', 'VVS2'))

dsub <- droplevels(dsub)

dsub_stats <- 
   dsub %>%
   group_by(cut) %>%
   rstatix::wilcox_test(carat~clarity) %>% 
   mutate(group1 = factor(group1, 
                          ordered = TRUE, 
                          levels = c("VS2", "VS1", "VVS2"))) %>%
   arrange(cut, group1) %>% 
   mutate(group1 = as.character(group1)) %>%
   rstatix::add_xy_position(x='cut')

ggpubr::ggboxplot(dsub, x = "cut", y = "carat",
                  color = "clarity",
                  add='jitter') +
   ggpubr::stat_pvalue_manual(dsub_stats, 
                              label = "p.adj.signif", 
                              tip.length = 0.01)
Run Code Online (Sandbox Code Playgroud)

reprex 包(v0.3.0)于 2020 年 9 月 24 日创建