我最近发现了一个很棒的ggpubr
包。由于我的工作涉及到多个组,我喜欢按不同维度(facet.by
)拆分数据。
我的问题包含两个子问题,与同一张图表有关。我想要:
- 为每个组添加唯一均值水平线,以及
- 仅绘制每个组的显著比较
我的目标是将箱线图和其配对比较的显著性值显示在一起。由于显著性可能因组而异,因此我可以仅绘制显著性较高的组,或指定显著性比较,并将它们单独绘制成每个组的图。
示例数据:
library(ggpubr)
library(ggplot2)
# Create data
# :::::::::::::::::::::::::::::::::::::::::::::::::::
data("ToothGrowth")
df <- ToothGrowth
# Create basic plot
p <- ggboxplot(df,
x = "dose",
y = "len",
color = "dose",
palette =c("#00AFBB", "#E7B800", "#FC4E07"),
add = "jitter",
facet.by = "supp", # define faceting
shape = "dose")
# Add horizontal line per each group???
p + geom_hline(yintercept = mean(df$len), #aggregate(len ~ supp, df, mean)$len, # mean(df$len),
linetype = 2,
group = "supp")
导致
我尝试计算每个组的平均值(#aggregate(len ~ supp, df, mean)$len
),但它只添加了两条线。
为了指定成对的箱线图以显示显著性结果,我可以添加
my_comparisons <- list( c("0.5", "1"), c("1", "2"), c("0.5", "2") )
显著性结果是与组相关的。然而,我只想显示重要的比较结果。我如何指定每个组中仅有显著的配对结果呢?类似于:
my_comp_OJ <- list( c("0.5", "1"), c("0.5", "2"))
my_comp_VC <- list( c("0.5", "1"), c("1", "2"), c("0.5", "2"))
应用hide.ns = TRUE
仅隐藏ns
,但保留成对行的指示。
p + stat_compare_means(comparisons = my_comparisons,
label = "p.signif",
hide.ns = TRUE) + # Add pairwise comparisons p-value
stat_compare_means(label.y = 50) # Add global p-value