第 14 课

patchwork 包拼图

课程讲义导读 · 聚焦本课核心概念、分析流程与复现要点

说明:本页适合用于快速回顾本课重点、关键步骤与常用示例。

主讲老师第十四课:patchwork 包拼图

众所周知,不管是基础包,还是后续介绍的 ggplot2 包,ggpubr 包,以及 ggstatsplot包中,经过绘图得到的都是单个图形,而在最后的文章中,我们往往需要将其进行组合,即所谓的“拼图”对于“拼图”一说,这可是一个精细的技巧活。毕竟,一图胜千言,文章的好坏,图的质量也占据了很大的比例。常见的拼图方法,就是从 ppt,到 Adobe 家族的 PS 和 AI 软件,尤其是 AI 对矢量图的编辑能力,可谓空前。实际上,我们的 R 也是具有一定程度的拼图功能的,当然,基础包里面也有对应拼图的函数存在,但我们要讲的主要是针对ggplot2 的一个拼图 R 包,patchwork 包(patchwork.zip)。

对于 patchwork 包,其是由 tidyverse 包开发团队中的一个成员 Thomas Lin Pedersen 所设计开发的,patchwork 包最初发布在 Github 上,2019 年 12 月 1 号进入 CRAN。

虽然是新成员,但其以简单,便捷等优点展现出了巨大的生命力。下面,我们一起来看一下 patchwork的使用方法。

1.R 包的安装与读取

由于 R 包目前已经被 CRAN 所储存,因此,我们可以直接通过 install.packages()函数进行下载。

当然,如果想要获得最初开发的版本,我们也可以从 Github 上进行安装成功安装后,读取 patchwork 包。

话不多说,先来看看示例代码,领略一下 patchwork 的优秀

2. 简单示例

回忆一下,ggplot2 包绘图的基础结构内容,接着,我们开始绘图:

使用 geom_point() 函数和 geom_boxplot() 函数分别来绘制两个不同的几何对象,一张点图,一张箱线图,下面,一波优秀的操作要开始了。

没错,一个“+”,他们在一起了,成功拼接。

再来两张图:

继续使用 ggplot() 函数来生成两张图。一张 geom_smooth() 生成的线图,以及一张 geom_bar() 生成的柱状图,接着,将 p1-p4 四个图进行拼接。

横着就"+",竖着就"/",如果此时你对图灰灰的背景不满意,想要去掉背景色,patchwork包已经贴心的想到了这一点。

一个参数的设置,通过&进行连接,直接消除所有图的背景。

3.图例的处理与收集

接下来,我们来生成两张带比例的图片。

当要进行拼图前,我们来介绍另外一个知识点,在 patchwork 中,不用坐标,不用宽高比例,借助layout 参数,直接用 ABCD 就可以对整个画板进行布局。

如果你要两个位置大小,就叫两声,比较小的图,叫一声就够了。

但是,两个 count 颜色的标注在图的中间,是不是觉得有些占位置呢?接着,我们来把图例移到边上去collect,收集一下。

可以看到,对参数 guides 进行设置,可以将所有的图例进行收集,放到整个图的右边。

这样,两个图共用一个比例尺,接下来,就是刚刚提到的 ABCD 怎么设置。

4.图标的设置

接下来,我们来给每个图添加一下图标注释:

因为在大部分的文章中,主要根据 A,B,C 进行排布,在这里我们也可以改为 ABC 的形式。

以 I,II,III 来进行添加ABCD 它来了,全部在里面了,好啦,拼图就讲到这里了。

当然,尽管 patchwork 功能强大,但也有它自身的局限性,patchwork 的使用对象必须是 ggplot2 包及其相关延伸包绘制的图,而对其他绘图包是不适用的。比如说,一张基于ggplot2 画的点图,和一张pheatmap 画的热图,两者是无法拼起来的,只能老老实实去 AI里面完成。

最后,简单讲一下图片的保存方法。

第一种,在 RStudio 中,直接通过 plots 里面的 export 完成保存,根据自己的需要保存成 png 或者pdf 格式第二种,三段乱格式。

pdf(file = "xxxx.pdf")xxxx 画图代码xxxxxdev.off()头尾各一句话,中间加入你的画图代码,即可将图片以 pdf 形式保存到当前工作目录下。

第三种,主要基于 ggplot2 包的结果保存,使用 ggsave()函数进行保存。如,拿前面的

做个例子:

ggsave(p1, file = "p1.pdf", width = 5, height = 5)即可快速保存结果,好啦,关于绘图部分就先介绍到这里了。

← 返回批次1总导航