浅谈生态学领域科研图表绘制的方向和未来

摘要

统计和绘图之间界限越来越模糊;

组合图形是趋势;

示意图或者照片图像和图表逐渐结合;

R语言继续发光发热。ggplot是核心。

写在前面

在近年来,随着作图工具发展,我们越来越自由,更加可以随心所欲出图。ggplot的出现让图形的绘制更加简单。人们更加追求组合图形的绘制。尤其是大文章,对组合图形的热度不减。

科研图表复杂度提高和色彩运用更加注重美学特征,这已经相当明显了,之后会有一篇帖子专门论述这两个特征。今天我们来谈谈以上的三个特征。那就是组合图表热。其实我们仔细思考,之前的双坐标图形就是一种简单的组合图表,到现在普遍的箱线图和散点图的结合图表:可用于展示样本总体和细节,到异曲同工小提琴图和散点。当然随着这些基本的组合图形逐渐满足不了人们的需求,比价复杂的组合图形出现,用于展示基本数据的统计。不如ggpubr等一些包吧:这些图形足够让我们浮想联翩,但是实际上表达的含义却不够,然而ggpubr将这些图层都封装起来了,很漂亮的图形,但是到目前我还没发现有一些发散性的应用。这个包有点伪ggplot的意思,同时设置大量的参数,如果开发者得以改进的话就太好了。(下面附着出图代码,大家就可以看到这一回事)

ggscatterhist =function(data, x, y, group =NULL, color ="black", fill =NA, palette =NULL, shape =19, size =2, linetype ="solid", bins =30, margin.plot =c("density","histogram","boxplot"), margin.params =list(), margin.ggtheme =theme_void(), margin.space =FALSE, main.plot.size =2, margin.plot.size =1, title =NULL, xlab =NULL, ylab =NULL, legend ="top", ggtheme =theme_pubr(),...)

library(ggpubr)# Grouped Scatter plot with marginal density plotsggscatterhist( iris, x ="Sepal.Length", y ="Sepal.Width", color ="Species", size =3, alpha =0.6, palette =c("#00AFBB","#E7B800","#FC4E07"), margin.params =list(fill ="Species", color ="black", size =0.2))# Use box plot as marginal plotsggscatterhist( iris, x ="Sepal.Length", y ="Sepal.Width", color ="Species", size =3, alpha =0.6, palette =c("#00AFBB","#E7B800","#FC4E07"), margin.plot ="boxplot", ggtheme =theme_bw())library(ggpubr)# Data preparationhousetasks <- read.delim( system.file("demo-data/housetasks.txt",package="ggpubr"), row.names =1)head(housetasks,4)# Visualizationggballoonplot(housetasks, fill ="value")+scale_fill_viridis_c(option ="C")

逐渐

慢慢的组合图表就这样开始了:并不是说之前没有啊,下面你们会看到基于base的组合图表,是相当强大的,只是热度没有现在这么高而已。Y叔的ggtree提供了facet_plot函数,用于进化树同各种图表的组合,最近的版本还支持了聚类对象,因此,样本距离和这使得gtree运用起来也就多一些。

引子

前一段时间在微生信生物群中讨论过好多优秀的可视化图表,甚至有些图表目前无法通过R语言实现。这里我将这些优秀的图表展示给大家。也借着这些图形谈一谈未来的论文图表。

组合图形一

这张图形是明显的Graphlan绘制的,但是就这上面一个个的柱状图是没有办法在同一个坐标标度中实现的,所以目前绝对只能组合图形。基于graphlan绘制的进化树很漂亮,但是调参数确实是巨大的问题,由于目前还很少有工具可以替代graphlan,所以我们还是经常使用这个工具,目前,R语言中ggtree的设计理念似乎可以解决这个问题,但是两年前我就问过Y叔了,至今外环绘制只有热图。其实可以绘制热图,就可以绘制其他元素,例如各种形状,这样下来设置比graphlan的外环内容更加丰富,毕竟基于ggplot许多开发者构造了多种图层元素,足以干掉graphlan。

最近ggtree的相关工作者有考虑到graphlan,比如microiomeviz包,就提供了将物种分类树构造成ggtree对象,并且提供类似graphlan输出的图形样式,正在做,但是还不够,最起码对于扩增子数据不是很好的兼容,例如:我们使用扩增子注释数据很容易得到graphlan建树文件,但是由于对未注释物种的处理方式不同,所以我们使用microiomeviz包来处理扩增子注释数据是不容易的。但这是一个很好的开端。

组合图形二

这张图表出现在2015年的science,目前已经可以通过ggcor包进行实现了。下面这几张图形式是早期的样式,依靠ggplot的出图,完全兼容,并在昨天(2020年3月12日)完成了对代码的最终改造。这是组合图表的的有益尝试。在2015年,当时并没有成熟的工具来绘制这个图表,我们不知道作者是如何绘制的,但是大概率是手动组合,但却提供了创新的思路,让我们可以用于开发。

组合图形三

这张图片的难点是热图同相关图形结合,并且将类似于进化树的标签加到图形中,按照某种规定在热图上标记方框,是否可以通过R 语言实现呢,显然ggplot目前还不行。标记方框可以使用聚类算法,或者指定等来构造,似乎目前ggcor可以做一部分,但是目前还不够完善。右侧物种分类信息本来是很难添加的,但是经过思考和实践,microbiomeViz结合ggtree可以完成这个物种分类信息的添加,想必会更好看。

组合图形四

堆叠柱状图如何展示极高丰度的指标和极低丰度的指标,这篇CHM给出了自己的方案。首先是将柱状图按照丰度排布丰度块,低丰度的将坐标轴拉长展示,而却还加进去了坐标截断,ggplot对断轴支持度不够,所以实现起来还是有一定难度的。这个方案应该可以通过R语言facet实现,但是ggplot天生对截断纵坐标图形支持不够,这是短板,所以实现以下功能还是有一定难度的。

组合图形五

18年发表与microbiome的扩增子加代谢物组的工作,热图实际上从来就没有热过,冷艳的表达更加深入人心,这样的图形结合左侧的分类箱线图,通过作图实现还是相当困难,主要是实现多对一排列。这张图形看上去是组合起来的,相比于上面的图形,似乎没有足够的亮点,但是让我思考了了一个在热图上聚类的方法,其实挺不需要添加图层来标记,我们将热图按照聚类等数据将热图分隔开来,只需指定分组即可得到类似的效果。

组合图形六

复杂热图,目前ggplot对这种复杂图形的支持不够,base下的plot可以实现许多复杂的组合图形,比如下面的这张:可通过ComplexHeatmap包实现。这是目前使用的人很少罢了。base对于组合图形的支持很好,base非常强大,例如我们目前很火热的upset图形就是使用base出图的,但是逐渐有了gg版本的upset。

组合图形七

这张图形结合热图和气泡图,两者可以通过连线进行组合。

最近几年网络,尤其是漂亮的网络在高水平SCI上层出不穷,目前经典的可视化方式就是gephi的圆心,并结合计算量很大的layout得到比较好的成图。cytoscape可以根据不同模块等分类进行分开展示网络,这是其特色,R语言对于网络图可视化显得不足,但是确实在发展目前ggraph包开发,sne包,tidyverse等包都可以使用ggplot出图,这是网络可视化发展的第一步,很欣喜看到这种变化,但是到达到gephi和cytoscape的效果是要困难不少。

组合图形八

这是15年发表在Mbio上的一篇文章:The Soil Microbiome Influences Grapevine-Associated Microbiota,使用了如图所示的网络图,按照葡萄植株的不同位置,将网络变形,这样做是想要突出微生物群落和空间位置之间的关系。

组合图形九:

在19年的焦硕的一篇文章中将微生物和地图整合起来其实和上一张图是一个道理。那这张图你会做吗?

浅谈

网络图同示意图,无论是植物还是地理地图等结合展示可以更加清晰的描述微生物在空间的关系,这似乎是趋势:图形和图像慢慢开始结合,视觉震感程度也更强,表达也更加容易。近年来在R语言中出现gganatogram包,可用于ggpplot绘制示意图,那么现在示意图也可以使用ggplot画,网络图也可以使用ggplot话,两者结合似乎只需一步就好了。这种努力理所当然的。

R语言在组合图表中占据的地位也越来越重要,以ggplot为框架进行图表的组合将会更加深入。

后记

所以在未来论文中,随着研究的不断深入,各种自然现象和发现需要更加复杂的图表进行描述,单个图表往往不能胜任,组合图表将成为未来,其次图像和图形之间没有明显的节点,会更加灵活的运用。

(0)

相关推荐

  • 自己如何画气泡图dotplot?

    今天是生信星球陪你的第803天 大神一句话,菜鸟跑半年.我不是大神,但我可以缩短你走弯路的半年~ 就像歌儿唱的那样,如果你不知道该往哪儿走,就留在这学点生信好不好~ 这里有豆豆和花花的学习历程,从新手 ...

  • 练习R:用ggpubr包ggline绘制线图

    案例数据 雇员数据,employee 加载R包 library(ggpubr) 主要目的:不同岗位的平均工资水平,不同性别的平均工资分布. #简单均值折线图 ggline(employee,x=&qu ...

  • R数据可视化 | PowerBI星球

    自从有了R,限制你的只是你的想象力! 在PowerBI默认的可视化对象中,还有个R视觉对象,点击并不能像其他可视化一样直接使用,不过你若就此放过,可能就与一个强大的工具插肩而过. 下面带你一步步走进R ...

  • 【R分享|实战】地表最全R拼图教程,告别AI和PS

    " 今日推文较长,请先收藏并空时学习.相信你一定有所收获."   --科白君 "R实战"专题·第16篇   编辑 | 科白维尼   4830字 |12分钟阅读 ...

  • 三十而已?四位女性科技工作者浅谈年龄与科研焦虑|颜宁|院士|教授

    文章来源:中国生物物理学会 近期,电视剧<三十而已>的热播,让很多人开始思考女性职业发展与年龄的关系 图片来源:豆瓣 对科技工作者而言,科研中面临的压力从来是两性都有的压力,但对于女性而言 ...

  • 浅谈航空领域中电液伺服系统应用

    浅谈航空领域中电液伺服系统应用

  • 明码标价之任意科研图表绘制(以氨基酸的位点变异图为例)

    前面我们开通了明码标价专栏: ATAC-seq项目的标准分析仅收费1600 单细胞转录组的质控降维聚类分群和生物学注释仅收费800 普通转录组上游分析仅收费800 公共数据库的WGCNA分析仅需800 ...

  • 浅谈医药化学领域选择发明的撰写及申请策略

    我国专利法第22条第3款规定:创造性,是指与现有技术相比,该发明具有突出的实质性特点和显著的进步.<专利审查指南>中将"发明取得了预料不到的效果"作为判断创造性时需要考 ...

  • flomo weekly vol.031 - 浅谈何谓领域,以及如何寻找

    在之前的周刊中,曾经提到了 I.A.R.P 的标签管理办法,但是许多同学对领域(Area)很模糊,今天专门来讲讲何谓领域,以及如何寻找及精进. 先来看一个例子:你回到家,想要美美的洗个澡看部剧,但是开 ...

  • 浅谈互联网领域之:社交与私域流量

    社交作为互联网中的一个重要战略地,不管是什么主营业务的产品,似乎都不愿放过社交这一板块.尤其是传统头部大厂,更是把社交拿捏的死死的.因为社交代表着流量池.代表着掌握社交关系链. 仅仅在一年内,仅数的上 ...

  • 浅谈教学与科研的关系

    培养人才是大学的第一使命,是大学的根和本.在担负这一使命的过程中,教学侧重于言传,科研侧重于身教.教学与科研,也就是言传与身教两者不是对立的,而是相辅相成的.教学和科研如能发挥各自优势.协同育人,就能 ...

  • 绘图技巧 | 科研图表可以在线绘制了!?这个宝藏网站值得你收藏

    DataCharm 定期更新 数据分析.数据可视化(商业.学术图表)教程,同时也会涉及机器学习.深度学习模型的构建及应用.所用工具主要包括Python.R.Processing等. 190篇原创内容 ...

  • 浅谈研究生培养的科研驱动与就业驱动

    摘要:分析了硕士研究生阶段从事科研工作与他们毕业找工作时能力需求之间的关系,也就是研究生培养的科研与就业之间的关系,这对关系有时存在矛盾.文章揭示了这个矛盾的起源.发展.结果.并给出了解决这种矛盾的建 ...