利用 cowplot 包快速对齐图片

简介: 利用 cowplot 包快速对齐图片

小编在撰写科研论文时,经常会使用 gridExtra[1] 包中 grid.arrange() 函数将多个图形进行组合展示。

以前基本使用默认几个参数就完事了,最近发现如果图形画布大小不同,组合后的图形会出现不对齐的问题,例如:(竖直方向上不对齐:下图标注的红线),看上去比较凌乱。

library(ggplot2)
library(gridExtra)
df <- data.frame(
  x = 1:10, y1 = 1:10, y2 = (1:10)^2, y3 = (1:10)^3, y4 = (1:10)^4
)
p1 <- ggplot(df, aes(x, y1)) + geom_point()+
  theme_bw()
p2 <- ggplot(df, aes(x, y2)) + geom_point()+
  theme_bw()
p3 <- ggplot(df, aes(x, y3)) + geom_point()+
  theme_bw()
p4 <- ggplot(df, aes(x, y4)) + geom_point()+
  theme_bw()
grid.arrange(p1, p2, p3, p4,nrow=2)

在搜集资料后发现cowplot[2]包能通过简单参数设置来快速对齐图片。小编以前介绍过这个包,可见:cowplot包,ggplot2图形排版R包cowplot包:用R添加水印

接下来看看,它是怎么实现的~

对齐后的图片

cowplot 包中的 plot_grid() 函数可以直接完成子图的对齐和排列。通过设置参数 aligh = 'v' 可以实现竖直方向对齐,aligh = 'h' 可以实现水平方向对齐,aligh = 'hv' 同时在两个方向对齐。

plot_grid(p1, p2, p3, p4, align = 'v')

此时,前面出现的问题基本解决了~接下来看看,其他常用的参数设置。

自动生成子图序号

如果需要给每个子图加上序号,设置参数  labels = "AUTO" 添加大写标签,labels = "auto" 添加小写标签。

plot_grid(p1, p2, p3, p4,align = 'v',labels = 'AUTO') #添加大写标签

调整图片长和宽的比例

修改参数 rel_widthsrel_heights 的值,就可以调整子图的长和宽的比例。例如,在一个两列的复合图中,rel_widths = c(2,1) 将使第一列子图的宽度是第二列的两倍。rel_heights 的工作原理与 rel_widths 相同,但用于行而不是列。

plot_grid(
  p1, p2, p3, p4,
  align = 'hv',
  rel_heights = c(2,1),
  rel_widths = c(1,2)
)

插空排列图形

如果想要插空排列子图,只需要将对应位置的子图设置为 NULL

plot_grid(
  p1, NULL, NULL, p2, p3, NULL,
  ncol = 2,
  align = "v"
)

适用于非 ggplot 生成的图形

对于非 ggplot 生成的图形,plot_grid() 函数也同样适用:

plot_grid(
  p1, NULL, NULL, p2, p3, NULL,
  ncol = 2,
  align = "v"
)

小编有话说

  • 多个图形合并在科研写作中非常常用。一种方式:通过 R 软件进行合并,并标注出对应信息,如本文所说。另一种方式:通过 LaTeX 的多图合并代码展示,如:LaTeX文档多图排版笔记

参考资料

[1]

gridExtra: https://cran.r-project.org/web/packages/gridExtra/index.html

[2]

cowplot: https://cran.r-project.org/web/packages/cowplot/vignettes/introduction.html


目录
相关文章
|
4月前
|
前端开发
Typora使用技巧1 —— 更改字体、大小、颜色、背景色,设置图片默认左对齐,修改图片保存路径
Typora使用技巧1 —— 更改字体、大小、颜色、背景色,设置图片默认左对齐,修改图片保存路径
597 3
文本,vitepress如何插入图片,做背景图片的设计,Typora如何设置存放图片的位置
文本,vitepress如何插入图片,做背景图片的设计,Typora如何设置存放图片的位置
|
5月前
CSDN--MD编辑器学习--图片插入尺寸和对齐方式
CSDN--MD编辑器学习--图片插入尺寸和对齐方式
|
6月前
|
数据安全/隐私保护 Python
python 图片打水印 透明图片合并
python 图片打水印 透明图片合并
50 1
|
6月前
图片的缩放源代码与使用
图片的缩放源代码与使用
34 0
|
前端开发
【前端】CSS实现图片文字对齐 并随着设备尺寸改变而改变大小
【前端】CSS实现图片文字对齐 并随着设备尺寸改变而改变大小
217 0
【前端】CSS实现图片文字对齐 并随着设备尺寸改变而改变大小
【Excel自动化办公Part4】:调整字体与样式的操作——字体、边框、对齐格式、颜色填充
【Excel自动化办公Part4】:调整字体与样式的操作——字体、边框、对齐格式、颜色填充
174 0
【Excel自动化办公Part4】:调整字体与样式的操作——字体、边框、对齐格式、颜色填充
|
Android开发
|
测试技术 Go Android开发
|
文字识别 Python wax
Python 绘图字体控制 + 文字在图片中的位置调整
Python 绘图字体控制 + 文字在图片中的位置调整
1187 0