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 函數(shù):
geom_signif(comparisons = NULL, #設(shè)置比對(duì)的組,用一個(gè)每個(gè)元素長(zhǎng)度為2的列表,可以設(shè)置多組。
data=NULL, #設(shè)置數(shù)據(jù),如果NULL則從ggplot繼承,也可以自己指定。
position="identity" #位置調(diào)整
step_increase=0, #如果有多個(gè)比對(duì),每個(gè)比對(duì)錯(cuò)開(kāi)率
map_signif_level = T, #是否展示顯著水平的匹配,c("***"=0.001, "**"=0.01, "*"=0.05)
test = "wilcox.test", #檢驗(yàn)的方式,可以t.test等
test.args= NULL, #檢驗(yàn)函數(shù)的額外參數(shù)
margin_top=0.05, #位置比最大值高出的位置,百分比,如果是多個(gè)比對(duì),可以用向量分別表示
textsize = 3.88 #字體大小
)
+ stat_compare_means(aes(group=V1),label = "p.signif",hide.ns = TRUE)
添加顯著性檢驗(yàn)的P值也可用ggpubr包stat_compare_means()函數(shù),指定根據(jù)那一列來(lái)分組,也可以自己指定不同組間的比較,
如my_comparisons <- list(c("x1", "x2"), c("x4", "x5"))
p+stat_compare_means(comparisons = my_comparisons)
stat_compare_means()默認(rèn)Wilcoxon Rank Sum and Signed Rank Tests,如果要用t檢驗(yàn)指定method參數(shù)
method = "t.test"
如果想把P值改成星號(hào),加label=“p.signif”參數(shù)
不顯著會(huì)在圖上顯示ns,如果不想要ns,可以加hide.ns = TRUE參數(shù)
星號(hào)的位置可以手動(dòng)指定,用label.y = c(xx,xx)參數(shù),xx是指星號(hào)縱坐標(biāo)的位置,后面AI弄也行
添加線(xiàn)段,可用ggsignif包geom_signif()函數(shù),用法 小明大佬 http://www.itdecent.cn/p/eea6c626569e)
有介紹

參考:
http://www.itdecent.cn/p/eea6c626569e 小明的數(shù)據(jù)分析筆記本 R分組箱線(xiàn)圖添加顯著性標(biāo)記
https://blog.csdn.net/xj4math/article/details/115448669 R通過(guò)ggpubr包添加p-value和顯著性標(biāo)記
https://zhuanlan.zhihu.com/p/259280570 為箱線(xiàn)圖添加顯著性注釋