问题描述
我整理了一个图以分别查看组,但现在想在图中包含均值成对比较的显着性水平。虽然我可以在图外进行比较,但是我想知道将比较包括在图中的最有效方法是什么?
当前图
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())
现在,我想在cut
变量的所有级别之间的clarity
变量的每个级别内添加比较。我更喜欢使用ggpubr
,但看不到可以在哪里实现。
解决方法
已编辑以考虑到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)
由reprex package(v0.3.0)于2020-09-24创建
,library(tidyverse)
library(rstatix)
library(ggpubr)
dsub <- diamonds[ sample(nrow(diamonds),]
dsub <- dsub %>%
filter(clarity %in% c('VS2','VVS2'))
dsub_stats <- dsub %>%
group_by(cut) %>%
wilcox_test(carat~clarity) %>% add_xy_position(x='cut')
ggboxplot(dsub,add='jitter'
) +
stat_pvalue_manual(dsub_stats,tip.length = 0.01)