美文网首页
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