首页 > 解决方案 > 从函数内将多页图打印到 pdf 上

问题描述

我编写了一个创建多个图的函数。我正在尝试将它们粘贴到排列在两个单独页面中的 pdf 上。
这基本上就是我试图做到这一点的方式:

x <- function()
… #does some stuff, makes plots p1:p6 
    pdf(paste(paste(x[1,1], x[1,7], x[1,6],".pdf", sep="")))
    ggarrange(p1,p2,p3, nrow=3, common.legend = T, legend = "top")
    ggarrange(p4,p5,p6, nrow=3, common.legend = T, legend = "top")
    dev.off()

否则该功能可以正常工作,但它不会创建 pdf。我需要以不同的方式格式化它,因为它在一个函数中吗?

标签: rfunctionpdfggplot2functional-programming

解决方案


需要print编辑 ggplot 图才能显示。在命令行中,当您运行一行时,默认情况下会发生这种情况。在函数中,默认情况下不会打印每一行的结果,因此您需要将其包装起来print()以给出:

x <- function()
… #does some stuff, makes plots p1:p6 
    pdf(paste(paste(x[1,1], x[1,7], x[1,6],".pdf", sep="")))
    print(ggarrange(p1,p2,p3, nrow=3, common.legend = T, legend = "top"))
    print(ggarrange(p4,p5,p6, nrow=3, common.legend = T, legend = "top"))
    dev.off()

推荐阅读