R语言画GO分析柱状图 r语言绘制柱形图

【R语言】解决GO富集分析绘图,标签重叠问题

前面我给大家详细介绍过

宁津ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

☞GO简介及GO富集结果解读

☞四种GO富集柱形图、气泡图解读

☞GO富集分析四种风格展示结果—柱形图,气泡图

☞KEGG富集分析—柱形图,气泡图,通路图

☞ DAVID GO和KEGG富集分析及结果可视化

也用视频给大家介绍过

☞ GO和KEGG富集分析视频讲解

最近有粉丝反映说,利用clusterProfiler这个包绘制GO富集分析气泡图和柱形图的时候,发现GO条目的名字都重叠在一起了。

气泡图

柱形图

这个图别说美观了,简直不忍直视。经过我的认真研究,发现跟R版本有关。前面我给大家展示的基本都是R 3.6.3做出来的图。很多粉丝可能用的都是最新版本的R 4.1.2。

我们知道R的版本在不停的更新,相应的R包也在不停的更新。我把绘制气泡图和柱形图相关的函数拿出来认真的研究了一下,终于发现的症结所在。

dotplot这个函数,多了个 label_format 参数

我们来看看这个参数究竟是干什么用的,看看参数说明

label_format :

a numeric value sets wrap length, alternatively a custom function to format axis labels. by default wraps names longer that 30 characters

原来这个参数默认值是30,当标签的长度大于30个字符就会被折叠,用多行来展示。既然问题找到了,我们就来调节一下这个参数,把他设置成100,让我们的标签可以一行展示。

是不是还是原来的配方,还是熟悉的味道

同样的柱形图,我们也能让他恢复原来的容貌。

关于如何使用R做GO和KEGG富集分析,可参考下文

GO和KEGG富集分析视频讲解

[R语言] GO富集分析可视化 GOplot::GOCircle

查看GOplot内示例数据的格式,对自己的数据做处理

观察结论:

观察自己的两个数据表:

table.legend 设置为T时会显示表格

本图中表格和图例是出图后剪切拼合而成,没有用R中的拼图包

R语言绘图(ggplot2、ggpubr)从入门到精通04--柱状图美化之调色

本系列课程要求大家有一定的R语言基础,对于完全零基础的同学,建议去听一下师兄的《生信必备技巧之——R语言基础教程》。本课程将从最基本的绘图开始讲解,深入浅出的带大家理解和运用强大而灵活的ggplot2包。内容包括如何利用ggplot2绘制散点图、线图、柱状图、添加注解、修改坐标轴和图例等。

本次课程所用的配套书籍是: 《R Graphic Cookbooks》

除了以上的基本图形外,师兄还会给大家讲解箱线图、提琴图、热图、火山图、气泡图、桑基图、PCA图等各种常用的生信图形的绘制,还不赶紧加入收藏夹,跟着师兄慢慢学起来吧!

柱状图可能是最常用的一种数据可视化。它们通常用于显示数值(在y轴上),用于显示不同类别的数值(在x轴上)。例如,柱状图可以用来显示四种不同商品的价格。柱状图通常不适合显示一段时间内的价格,因为时间是一个连续的变量。

在制作柱状图时,您应该注意一个重要的区别:柱状图的高度有时表示数据集中的案例数,有时表示数据集中的值。记住这一区别——这可能会引起混淆,因为它们与数据的关系非常不同,但两者使用相同的术语。

拓展: position参数: 此处的position主要是指对图像的微调,最常见的应用是在分组的柱形图(bar)中,因为分组的柱形图会产生组内堆积和不堆积两种主要效果。

R语言处理PCR数据,一步画柱状图、添加显著性标志并实现截断

PCR数据要有三列,一列是组名,一列是内参基因的CT值,一列是目的基因的CT值,计算方法是-2 ∆∆Ct 法,实现一步出图用的是 ggpubr ,实现截断则是Y叔出手的 ggbreak

以前很少有包可以完美实现这个功能,我以前写过 R做截断柱状图并加显著性统计 可以实现,但Y叔出手写了个 ggbreak 包,完美的就解决了

其实还有一个 pcr 的包也能简单实现,而且自动计算mRNA相对表达定量,而且对照组定量是1,更加科学,但是表格只是两列CT值,还要重新定义组,所以要先提取一下表格,处理一下数据。

也可以截断,还是 ggbreak

R语言,如何画图.....

q1, 首先要确定是barplot还是hist,如果是barplot的话,应该不存在breaks的问题,因为barplot的传入参数是个矩阵;

我假设你要画的是个hist,我偶遇过这个问题,我的理解是hist的breaks的值要能被范围整除才行;比如x=1:200,break=7的话,就只能画出4个柱来,但如果breaks=10就没问题;基本上是这样的,偶尔也有例外;比如break=5就不行....奇怪得很

最后,没办法的办法,就只能用barplot代替hist了,barplot肯定不会有这个问题,统计下hist参数中的分布情况,转换成矩阵,用barplot吧;

q2, 貌似一般都用一组因素把这些类别区分开,我用abcde,表示你的小学,中学...了,比如这样:

a=1:7;b=8:10;c=c(9,10,11);d=c(40,55);e=100:110

f=factor(c(rep(1,sum(length(a),length(b),length(c))),rep(2,sum(length(d),length(e)))))#先用c()生成数组,在转换成factor,其实数组也ok的,不过plot()中两个数组和factor不一样 

x=c(a,b,c,d,e)

plot(x~f)

q3, 就我所知不行;yes或no一定也要是能映射到x,y范围内的点才行;你是想表示分类结果吗?如果是的话,通常用颜色,或者在点旁边的text表示。

q4, 举个例子吧

x=-50:50

y=x^2+x+1

z=10*abs(x)+1

plot(x,y,type='l')

lines(x,z,lty=3)

legend(c('type1','type2'), x=-20,y=2500, col=c('black','red'), lty=c(1,3))

legend的x和y是legend的左上角,匿名参数是类型名称,col,lty,pch 是对应的颜色,线类型,和点类型。

最后,我现在多用ggplot2,如果不抵触的话可以看看,和R的基础作图包思路不是很一样,但是图很清新的;

如果还有问题,建议把数据集data.frame粘贴几行上来,我也试试;

转录组不求人系列(十三): GO、KEGG富集个性化作图

当富集分析完成,拿到如下的分析结果后,就可以进行作图了。

富集分析结果的可视化无非就是柱状图和气泡图,但是公司默认出图实在是太丑,所以还是自己动手修改修改。

一、常规柱状图(ggplot2)

横轴为gene counts,或者用-logP也行,填充相应的用P值或者gene counts。ggplot画图的好处就是可以进行很多调整。

二、常规气泡图(ggplot2)

气泡图与柱状图如出一辙,只是在展示方式上出现了差别。一个用geom_bar()函数,气泡图类似于散点图用geom_point()函数。

三、上下调同时展示(ggplot2)

很多时候研究者拿到差异基因后,上下调基因是分别富集的,在展示上需要同时体现二者,我们之前提到metascape可以做到: 转录组不求人系列(十二): Cell文章最喜欢用的差异基因GO、KEGG富集分析工具 ,除此之外,之前讲过的气泡图也可以展现多组的结果: 复现《nature communications》图表(四):ggplot画多组富集气泡图 。这里我们继续提供一种bar图的展示方式。将down的数值调整为负,做一列分组,就可以展示了。

当然了,以上所说的可视化还是比较常规,在基础上可以自己做调整。也有一些文章总是标新立意,有很多奇特的展现方式,我们会在之后的系列中讲解。


文章题目:R语言画GO分析柱状图 r语言绘制柱形图
网页网址:http://myzitong.com/article/docgjio.html