R 安排多个ggplot2地块

R 安排多个ggplot2地块,r,ggplot2,R,Ggplot2,我正在尝试创建许多图(简单的x-y条形图),我希望以网格的形式显示这些图。当我使用gridExtra包的grid.arrange时,随着绘图数量的增加,每个单独的绘图都会缩小。是否有一种方法可以创建绘图画布,使其跨越多个页面而不收缩每个单独的绘图 gridExtra中的一个简单示例: require(ggplot2) require(gridExtra) plots = lapply(1:50, function(.x) qplot(1:10,rnorm(10),main=paste("plot

我正在尝试创建许多图(简单的x-y条形图),我希望以网格的形式显示这些图。当我使用gridExtra包的grid.arrange时,随着绘图数量的增加,每个单独的绘图都会缩小。是否有一种方法可以创建绘图画布,使其跨越多个页面而不收缩每个单独的绘图

gridExtra中的一个简单示例:

require(ggplot2)
require(gridExtra)
plots = lapply(1:50, function(.x) qplot(1:10,rnorm(10),main=paste("plot",.x)))
do.call(grid.arrange,  plots)
上面的代码生成了50个绘图,但它们会缩小以适合画布。有没有办法避免这种情况?i、 例如,让它们跨越多个页面,每个页面大约有9个左右的绘图?我可以使用PNG或PDF文件格式

在尝试grid.arrange之前,我使用了这个站点的代码示例:并遇到了相同的问题

我还没有尝试将不同的数据帧组合成一个带有绘图标识符的巨大数据帧。然后我想用绘图标识符刻面,但我不确定它是否也会有缩小每个绘图的相同问题

希望我的问题是清楚的

谢谢,
-e

重复的:,你能帮我刻面吗?您可以九人一组创建一个新的刻面变量,并将其制作成多页pdf。@Andrie,谢谢!我在寻找错误的关键词,但没有发现链接。使用pdf()并在循环中打印效果非常好。我将在答案中添加伪代码@蔡斯,这是个好主意。在我的情况下,我并没有将东西存储在数据框中,所以我只是将它直接打印到循环中的pdf中。如果我有一个卷起的数据框架,您的建议会更好,因为我不需要grid.arrange。谢谢
library(gridExtra)
library(ggplot2)
my_func = function (d,filename = "filename.pdf") {
    pdf(filename,width=14) # width = 14 inches
    i = 1
    plot = list() 
    for (n in names(d)) {
        ### process data for plotting here ####
        plot[[i]] = qplot(x, y, geom="bar", data = my_data,)
        if (i %% 9 == 0) { ## print 9 plots on a page
            print (do.call(grid.arrange,  plot))
            plot = list() # reset plot 
            i = 0 # reset index
        }
        i = i + 1
    }
    if (length(plot) != 0) {  ## capture remaining plots that have not been written out
        print (do.call(grid.arrange,  plot))
    }
    dev.off()
}