美文网首页
R语言多页多图

R语言多页多图

作者: SCU十一 | 来源:发表于2022-05-09 11:22 被阅读0次

1.问题描述,我在for循环里面画了若干张图,想要每一页放4个,得到一个多页pdf,使用cowplot包的plot_grid函数可以拼接一页,这样就需要很多很多行命令,并且要随着图片数量的改变进行改变。像这样,3页pdf,手写出来。但是很多的时候没有办法。

pdf("02.pal.all_cell.pdf",width=4,height=4)

plot_grid(pp1,pp2,pp3,pp4,ncol=2,nrow=2,hjust=1.5)

plot_grid(pp5,pp6,pp7,pp8,ncol=2,nrow=2,hjust=1.5)

plot_grid(pp9,ncol=2,nrow=2,hjust=1.5)

dev.off()

2.解决方法

①把全部图片(不管多少个)放到一个list中,本次为pp_list,里面存了所有的图

②每次把pp_list中取前4个来画一页pdf,不足4个的直接全部画出来

n_pdf=ceiling(length(pp_list)/4)   ##判断一页4张图,需要多少页pdf

pdf("02.test.pdf",width=4,height=4) 

for (i in 1:n_pdf){ 

if (length(pp_list) > 4){

new_list=pp_list[c(1,2,3,4)]

pp_list=pp_list[-c(1,2,3,4)]

print(plot_grid(plotlist=new_list,ncol=2,nrow=2,hjust=1.5))

}   ##当list中存在的图数量>4时,把前4个给到画图的newlist中并在一页pdf画出来;最后在原始list删除这4个图

else {

new_list=pp_list

print(plot_grid(plotlist=new_list,ncol=2,nrow=2,hjust=1.5))

}##当list中存在的图数量≤4时,整个list给到现在的newlist中并在一页pdf画出来

}

dev.off()

完成啦

相关文章

网友评论

      本文标题:R语言多页多图

      本文链接:https://www.haomeiwen.com/subject/owhhurtx.html