R

内有箱线图的小提琴图(加检验)

2021-11-16  本文已影响0人  ytbao
R
library(ggplot2)
install.packages("ggpubr")
library(ggpubr)

df<-read.table("1.txt",header=F)
head(df)
     V1   V2
1 shabi  620
2 shabi  225
3 caiji 1753
4 caiji  372
5 shabi  426
6 caiji 3514

pdf("1.pdf",width = 3.5, height = 2)
ggviolin(df, x="V1", y="V2", fill = "V1", palette = c("#F7B32D", "#7BDFF2"), 
add = "boxplot", add.params = list(fill="white"))+ theme(legend.position="none") +scale_y_log10()+
geom_signif(comparisons = list(c("Donar", "Free")),map_signif_level=T,
vjust=0.5,color="black", textsize=4,test=wilcox.test,step_increase=0.1,margin_top=0.12)+
ylab("1")+ xlab("2")
dev.off()

theme(legend.position="none")  ggplot2中移除图例

geom_signif 函数:
geom_signif(comparisons = NULL,         #设置比对的组,用一个每个元素长度为2的列表,可以设置多组。
            data=NULL,                  #设置数据,如果NULL则从ggplot继承,也可以自己指定。
            position="identity"         #位置调整
            step_increase=0,            #如果有多个比对,每个比对错开率
            map_signif_level = T,       #是否展示显著水平的匹配,c("***"=0.001, "**"=0.01, "*"=0.05)
            test = "wilcox.test",       #检验的方式,可以t.test等
            test.args= NULL,            #检验函数的额外参数
            margin_top=0.05,           #位置比最大值高出的位置,百分比,如果是多个比对,可以用向量分别表示
            textsize = 3.88             #字体大小
            )
+ stat_compare_means(aes(group=V1),label = "p.signif",hide.ns = TRUE)
添加显著性检验的P值也可用ggpubr包stat_compare_means()函数,指定根据那一列来分组,也可以自己指定不同组间的比较,
如my_comparisons <- list(c("x1", "x2"), c("x4", "x5"))
p+stat_compare_means(comparisons = my_comparisons)

stat_compare_means()默认Wilcoxon Rank Sum and Signed Rank Tests,如果要用t检验指定method参数
method = "t.test"

如果想把P值改成星号,加label=“p.signif”参数
不显著会在图上显示ns,如果不想要ns,可以加hide.ns = TRUE参数

星号的位置可以手动指定,用label.y = c(xx,xx)参数,xx是指星号纵坐标的位置,后面AI弄也行

添加线段,可用ggsignif包geom_signif()函数,用法 小明大佬 https://www.jianshu.com/p/eea6c626569e)
有介绍

参考:
https://www.jianshu.com/p/eea6c626569e 小明的数据分析笔记本 R分组箱线图添加显著性标记
https://blog.csdn.net/xj4math/article/details/115448669 R通过ggpubr包添加p-value和显著性标记
https://zhuanlan.zhihu.com/p/259280570 为箱线图添加显著性注释

上一篇下一篇

猜你喜欢

热点阅读