【发布时间】:2010-11-01 20:53:48
【问题描述】:
我想在 PDF 文件的 3 页上安排 3x3 网格布局。我想在三个页面中的任意网格位置绘制。我知道如何使用layout=c(3,3) 之类的选项来安排多个子图。我可以弄清楚如何使用 grid 包在单个图上安排 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()
但这只会生成第二页(我猜“新页”会覆盖旧页,而不是创建新页)。
任何帮助将不胜感激!
【问题讨论】:
-
不能对上一页的图形进行操作。您可能只需要重新考虑绘制事物的方式。
-
你的例子对我有用:我得到了两个页面。 (WinXP下R2.12.0和R2.11.1测试)
-
@Richie Argh!多么令人沮丧……
-
@Vitoshka 我不确定我是否在示例中的前一页上操作图形...如果我是,你能告诉我怎么做吗?我想我在第 1 页(vp1)上画了一些东西,然后创建一个新页面,然后在新页面上画一些东西......
-
pdf中有一个文件参数。尝试明确设置。