背景基礎(chǔ)
箱線圖的解釋:
添加p值的需求
這樣的箱線圖,添加p值的需求是很多見的甘桑,核心就是stat_compare_means函數(shù)拍皮,可以很輕易搜到代碼:
library(ggpubr)my_comparisons <- list( c("0.5", "1"), c("1", "2"), c("0.5", "2") )
ggboxplot(ToothGrowth, x = "dose", y = "len",
color = "dose", palette = "jco")+
stat_compare_means(comparisons = my_comparisons)+
stat_compare_means(label.y = 50)
加難度
如題,有的箱線圖不止一個(gè)分組扇住,下面的例子中,橫坐標(biāo)按照cyl列映射盗胀,填充顏色按照am列映射艘蹋,即可得到展示雙分類的箱線圖。
library(ggplot2)
library(dplyr)
x = mtcars %>%
mutate_at(vars(am, cyl), as.factor)
p <- ggplot(x,aes(am, disp, fill=cyl))+
geom_boxplot()+theme_classic()
p1 = p + stat_compare_means(aes(group = am),label = "p.format")
p2 = p + stat_compare_means(aes(group = cyl), label = "p.format")
library(patchwork)
p1+p2
此圖添加p值票灰,可根據(jù)am分組女阀,也可根據(jù)cyl分組宅荤,計(jì)算出的p值是不同的。
本想繼續(xù)探索如何給分組內(nèi)部添加比較連線浸策,卻發(fā)現(xiàn)stat_compare_means的comparisons參數(shù)無法支持這樣的操作冯键,一個(gè)畫圖愛好者抱著執(zhí)念搜索了好久,沒有找到直接添加的操作庸汗,只能是通過分面了惫确。
p <- ggplot(x,aes(cyl, disp, fill=cyl))+
facet_wrap(~am)+
geom_boxplot()+theme_classic()+
stat_compare_means(comparisons = list(c("4","6"),c("6","8")));p