图片的排版通常是一个耗费时间和精力的任务,你是否也曾经为paper的图片排版而感到悲伤。前几天,小编在网上冲浪的时侯无意发现了一个R包multipanelfigure,或许可以解决你论文图片排版的烦恼。
后台回复获得示例代码:afmultifigure
项目地址:
https://github.com/cran/multipanelfigure
软件包的引用
引用R包(没有安装的需要安装):
#devtools::install_bitbucket("graumannlabtools/multipanelfigure")
library(multipanelfigure)
library(lattice)
library(magrittr)
输入文件
这里是5张准备进行排版的图片,放置在工作目录下:
设置排版框架
总共有两种设置方式:
①第一种,指定绘图框架的总宽度和高度(默认单位为毫米),共3行3列9个格子
figure1 <- multi_panel_figure(
width = 180, height = 180,
columns = 3, rows = 3)
#展示figure
figure1
②第二种,分别指定绘图框架中各个格子的行列的宽度和高度
figure2 <- multi_panel_figure(
width = c(20, 30, 40),
height = c(10, 20, 30))
#展示
figure2
填充图片
设定好图形框架以后,就可以将我们的图片加进去了
①先将“a.png”加到第一行第一列的格子中(支持位图,例如JPEG、PNG 和 TIFF 图像):
figure1 %<>% fill_panel(
"a.png", #读入当前工作目录下的“a.png”文件
column = 1, rows = 1, #图片填充到第一行第一列的格子中
scaling ="fit") #图片自动根据格子大小进行填充
#简单看一下这个时候的figure1
figure1
②再将“b.png”加到第一行第二列的格子中:
figure1 %<>% fill_panel(
"b.png", #读入当前工作目录下的“b.png”文件
column = 2, rows = 1, #图片填充到第一行第二列的格子中
scaling ="fit") #图片自动根据格子大小进行填充
#简单看一下这个时候的figure1
figure1
③后面就不再一步步解释了(看注释),将剩下的几张图片根据各自大小分别填充到figure1中
#添加 "c.png"
figure1 %<>% fill_panel(
"c.png",
column = 3, rows = 1,
scaling ="fit")
#添加 "d.png"
figure1 %<>% fill_panel(
"d.png",
column = 1, rows = 2:3, #图片填充到第一列第二行、第一列第三行的两个格子中
scaling ="fit")
#添加 "e.png"
figure1 %<>% fill_panel(
"e.png",
column = 2:3, rows = 2:3, #图片填充到第二列第二行、第二列第三行下、第三列第二行、第三列第三行的两个格子中
scaling ="fit")
#最后看一下这个时候的figure1
figure1
最后的figure1如下:
除了已经生成的位图图像以外,multipanelfigure也支持其它R语言对象的填充,如ggplot2生成的gg对象。这个大家可以直接查看github项目中的说明,我也在下方附上了截图:
今天就分享到这里了
大家可以试试