组间差异箱型图怎么画?大海哥赐你代码法宝!






组间差异箱型图怎么画?大海哥赐你代码法宝!

大海哥  生信果  2023-09-27 19:00:07

点击蓝字 关注我们

小伙伴们大家好,时光飞逝,我依然是那个乐于助人的大海哥,今天大海哥同样是来帮助大家排忧解难的,今天分享的知识是我们日常分析经常会用到的可视化方法——箱型图,很多小伙伴都画过,但是有时候画出来的样子就是不太符合自己的预期,那今天大海哥就赐你一代码法宝,让你的箱型图不再显得平平无奇。首先我们先一起讨论一下,箱型图最基本的几个要素。

箱型图是一种用于可视化数据分布和检测异常值的统计图表,其主要由五个统计量组成,包括最小值、第一四分位数(Q1)、中位数(Q2,即箱子中的线)、第三四分位数(Q3)和最大值,通常还包括异常值。一般箱型图都是我们比较不同数据集分布情况的好帮手,通过将多个箱型图并排放置,可以清晰地比较它们的中心趋势、离散程度和异常值情况。

如此担负重任的可视化方式,我们肯定要画的全面一点,所以大海哥这就准备了一个R语言代码实现案例分享给大家,让我们开始吧!

首先我们需要加载我们的数据,这里先给大家看看数据的基本要求格式

可以看到格式非常简单,每一行对应一个样本,第一列为样本名,第二列为样本分组,后面几列就是我们需要比较的指标了,可以是一列也可以是多列,然后让我们开始代码部分吧!#加载关键R包library(ggpubr)#加载数据rt<-read.table("gene_deg.txt",sep="t",header=T,check.names=F)#预览一下head(rt)
#然后指定我们的分组和对比指标x=colnames(rt)[2]y1=colnames(rt)[3]y2=colnames(rt)[4]y3=colnames(rt)[5]#分组需要进行一下因子化,因为是分类变量group=levels(factor(rt$group))rt$group=factor(rt$group,levels=group)comp=combn(group,2)my_comparisons=list()for(i in 1:ncol(comp)){my_comparisons[[i]]<-comp[,i]}  #然后需要调用ggpubr中的ggboxplot方法来进行可视化  ggboxplot(rt,x="group",y=y1,color="group",xlab="",ylab= " Expression",legend.title="Type",palette = c("#dc0000","#0072b5"),add = "jitter")+ stat_compare_means(comparisons = my_comparisons,method = "wilcox.test",symnum.args=list(cutpoints = c(0, 0.001, 0.01, 0.05, 1), symbols = c("***", "**", "*", "-")),label = "p.signif")  #这里大海哥用*号来代替了差异性P值,其中小于1大于0.05就是一个-,然后小于0.05大于0.01就是一个*,小于0.01大于0.001就是**,小于0.001大于0就是***#当然了大家也可以直接显示p值哦,只需要把symnum.args=list(cutpoints = c(0, 0.001, 0.01, 0.05, 1), symbols = c("***", "**", "*", "-")),label = "p.signif")去掉就好啦!会自动以科学计数法的方式展示P值哦!  #我们先看看*号显示的结果
#看着是不是很不错#我们再看看直接显示P值的
#而且stat_compare_means中的method可以指定不同的差异检验方法哦!wilcox.test代表是Wilcox秩和检验,还可以换成t.test,kruskal.test,anova等方式。#Wilcox秩和检验是一种非参数方法,用于比较两组数据的分布差异,特别适用于不满足正态分布假设或方差齐性假设的情况。它在统计分析中有广泛的应用,用于研究两组数据之间的差异。而其他的方法,像t.test就是T检验,都是大同小异的,大家也可以自行选择。#这里大海哥只展示一列指标的箱型图,然后同样的代码展示另一列。#只需要把y1换成y2和y3就好啦ggboxplot(rt,x="group",y=y2,color="group",xlab="",ylab= " Expression",legend.title="Type",palette = c("#dc0000","#0072b5"),add = "jitter")+ stat_compare_means(comparisons = my_comparisons,method = "wilcox.test",symnum.args=list(cutpoints = c(0, 0.001, 0.01, 0.05, 1), symbols = c("***", "**", "*", "-")),label = "p.signif")#看看结果吧!

#是不是很简单,再多的指标也是通过修改y就好了,然后我们再手动整合一下结果就可以直接放到论文里了,简单又好用还好看,说是法宝不为过,只希望对小伙伴们有用就好。

总结一下,箱型图是一种常用的数据可视化工具,它能够提供关于数据分布和异常值的重要信息,有助于数据分析和探索。大海哥本次展示的箱型图就是不仅展示了数据整体趋势,更表现出组间差异情况,同时把每个样本的分布情况进行展示,可以观察到异常情况,符合一个完整的箱型图要求。小伙伴们也不要偷懒哦!动手试一试吧!









生信滩公众号

点击“阅读原文”进入网址