R:在多个页面上以网格布局打印

R:在多个页面上以网格布局打印,r,r-grid,R,R Grid,我想在一个PDF文件的3页上安排一个3x3的网格布局。我想在这三页中的任意网格位置进行绘图。我知道如何使用诸如layout=c(3,3)之类的选项来排列多个子图。我可以想出如何使用网格包在单个绘图上安排3x3布局,然后决定使用哪个绘图。然而,我不知道如何在3页上布置一个3x3网格,然后选择要绘制的网格 我希望grid.newpage()能解决我的问题,如下所示: library(grid) pdf(file="griddtest.pdf",paper="letter") vp1 <- vi

我想在一个PDF文件的3页上安排一个3x3的网格布局。我想在这三页中的任意网格位置进行绘图。我知道如何使用诸如
layout=c(3,3)
之类的选项来排列多个子图。我可以想出如何使用网格包在单个绘图上安排3x3布局,然后决定使用哪个绘图。然而,我不知道如何在3页上布置一个3x3网格,然后选择要绘制的网格

我希望
grid.newpage()
能解决我的问题,如下所示:

library(grid)
pdf(file="griddtest.pdf",paper="letter")
vp1 <- viewport(x = 0, y = 0.5, w = 0.5, h = 0.5, just = c("left", "bottom"), 
    name = "vp1")
vp2 <- viewport(x = 0, y = 0.5, w = 0.5, h = 0.5, just = c("left", "bottom"), 
    name = "vp2")
pushViewport(vp1)
grid.text("Some drawing in graphics region 1 on page 1",y = 0.8)
grid.newpage()
pushViewport(vp2)
grid.text("Some drawing in graphics region 2 on page 2",y = 0.8)
dev.off()
库(网格)
pdf(file=“griddtest.pdf”,paper=“letter”)

vp1如果您有九个面板,并在布局中指定三个面板,例如

xyplot(runif(9) ~ 1:9 | 1:9, layout = c(1,3))
然后你画了3张图。对于在GUI窗口中打印,打印将被覆盖,但如果保存为PDF,则打印将显示在连续页面上


编辑:要使绘图仅占页面的三分之一,请在调用
pdf
中调整绘图的高度

pdf(..., height = 3)
# ...
dev.off()
默认情况下,这会在每页的中心绘制每个绘图。通过设置
pagecenter=FALSE
,绘图显示在每页的底部。我在
pdf
中找不到使它们显示在顶部的选项

为了更好地控制绘图的位置,首先将其保存到eps(使用
postscript
功能)或png


然后,您可以使用
swave
创建任意格式的pdf,包括这些文件。或者,在您选择的文字处理器中创建文档,然后手动导入图像文件。

您无法在上一页的图形上进行操作。你可能只需要重新思考你绘制这些东西的方式。你的例子对我很有用:我两页都有。(在WinXP下的R2.12.0和R2.11.1中测试)@Richie Argh!多么令人沮丧…@Vitoshka我不确定我是否在示例的前一页上操作图形。。。如果我是,你能告诉我怎么做吗?我想我在第1页(vp1)上画了一些东西,然后做了一个新的页面,然后在新的页面上画了一些东西……pdf中有一个文件参数。尝试显式设置。我可以控制这些面板的布局,使它们只显示在页面的前三分之一吗?这是我的简报…@Mike,如果你使用latex(Swave),你可以把你的彩车放在任何你想放的地方()@VitoshKa如果由我决定,这正是我要做的。不过,我的简介是使用R。谢谢你的帮助!