R海拾遗-图片拼接

时间:2022-07-25
本文章向大家介绍R海拾遗-图片拼接,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

R图片拼接

sunqi

2020/7/16

1. 概述

对于ggplot,不支持将多个图片拼接的操作,因此绝大多数的人使用ps或者ppt进行拼接图片,包括我,现在可以使用软件包来完成

安装包:patchwork

patchwork的作用是将不同的ggplot组合到同一个图形中。

2. 安装

# devtools::install_github("thomasp85/patchwork")
# 或者采用镜像
if(F){
  install.packages("patchwork")
}

3. 正文

library(patchwork)

# 开始
library(ggplot2)
p1 <- ggplot(mtcars) +
  geom_point(aes(mpg, disp)) +
  ggtitle('Plot 1')

p2 <- ggplot(mtcars) +
  geom_boxplot(aes(gear, disp, group = gear)) +
  ggtitle('Plot 2')

p3 <- ggplot(mtcars) +
  geom_point(aes(hp, wt, colour = mpg)) +
  ggtitle('Plot 3')

p4 <- ggplot(mtcars) +
  geom_bar(aes(gear)) +
  facet_wrap(~cyl) +
  ggtitle('Plot 4')

## 使用加号拼接图片
p1 + p2
## 拼接图片后,作为一个新的绘图单元,可以添加ggplot2的元素
p1 + p2 + labs(subtitle = 'This will appear in the last plot')
# 默认情况下,patchwork将尝试保持网格是正方形的,并按行顺序填写

p1 + p2 + p3 + p4
## 但是同时也支持页面布局调整
p1 + p2 + p3 + p4 + plot_layout(nrow = 3, byrow = FALSE)
## 使用/布局
p1 / p2
## 更复杂的布局
p1 | (p2 / p3)
## 对图片添加注释
(p1 | (p2 / p3)) +
  plot_annotation(title = 'The surprising story about mtcars')
## 自动添加图的序号

p1 + p2 + p3 +
  plot_annotation(tag_levels = 'A')

## 4.额外的包ggpubr

同时在浏览patchwork包中,其实很多包能够完成这些操作,比较简单的是ggpubr

library(ggpubr)
# 基础拼接
ggarrange(p1,p2,p3,p4,ncol=2,nrow=2,labels=c("A","B","C","D"))
##嵌套拼接
ggarrange(p2,ggarrange(p1,p3,ncol=2,labels=c("B","C")),nrow=2,labels="A")

5.结束语

对于patchwork来说,这只是一个简单的开始,当然里面还有很多的参数可以修改,达到自己修图的目的,对于ggpubr来说拼图只是它的一个功能,其他绘图功能也比较出众,后面想起来就更一下。另外关于meta分析,想写一个专题,但是感觉我又用不到,就说这么多吧。

love&peace