阅读 80

R做截断柱状图并加显著性统计

本教程全部是基于ggpubr画的,当然ggplot2更好,但是代码太复杂,还要另外计算均数和标准差,ggpubr可以直接统计均数和标准差,所以本着偷懒的原则就用ggpubr了。

首先准备一个如下的表格,主要有三列,一个分组,一个值,还有一个表型


表格

做柱状图比较简单,加显著性统计也有教程,但对于表达丰度相差较大的图,就会有明显差异,比如说直接出图是这样的,很难比较直观

默认

从结果来看,NC组最大值约1,OE组的最小值大约在20左右,因此可以在1.5-10左右截断,然后先截断一下,然后拼接一下,是不是就好看多了


截断

有一个包叫gg.gap也可以实现截断,但是截断完以后显著性标记没了,分组也没了,当然gg.gap是基于ggplot2的,我这个是用ggpubr画的,可能存在这个问题,如果直接用ggplot2出图的画,应该是不存在这个问题的,有心人的话可以自己去验证

gg.gap(plot=p,segments=c(1.5,10), ylim=c(0,70))
gg.gap作图

截图主要是两部分图组成,下部分主要是最小值部分,不包括分组和显著性统计结果,定义为p1,上部分应包括分组和显著性统计结果,定义为p2,然后使用patchwokr拼一下,可以平均拼接,也可以按比例拼接

library(ggpubr)
p1<-ggbarplot(pcr,"cell",'value',add = 'mean_se',error.plot = 'upper_errorbar',fill='group',palette = 'aaas',position=position_dodge(0.75),legend = "none",ggtheme=theme_minimal())+ coord_cartesian(ylim = c(0,1.5)) +labs(x=NULL,y=NULL,fill=NULL)
#使用ggbarplot函数,直接计算均数和标准差,只显示上部分误差,从0-1.5截断,可以自己定义配色,比如按aaas配色,使用清爽的theme_minimal()主题,把x,y值全都清空。
p1
p2<-ggbarplot(pcr,"cell",'value',add = 'mean_se',error.plot = 'upper_errorbar',fill='group',position=position_dodge(0.75),legend = 'top',palette = 'aaas',ggtheme=theme_minimal())+theme(axis.text.x = element_blank(),axis.ticks.x = element_blank()) + coord_cartesian(ylim = c(10,70))+stat_compare_means(aes(group = group),method = 't.test', label = "p.signif") +labs(x=NULL,y=NULL)
#aaas配色,上部分误差,选择10-70的范围,加显著性统计,加分组标签
p2
library(patchwork)
p2/p1 #拼图

大功告成


barplot

然后PS或AI调整一下就行

前后对比

作者:欧阳松

原文链接:https://www.jianshu.com/p/762bcae21f74

文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐