繁体   English   中英

R:在多个页面上以网格布局绘图

[英]R: plot in a grid layout over multiple pages

我想在3页的PDF文件中安排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()

但这只是生成第二页(我猜'新页'会覆盖旧页面,而不是制作新页面)。

任何帮助将不胜感激!

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

xyplot(runif(9) ~ 1:9 | 1:9, layout = c(1,3))

然后你得到3张图。 为了绘制到GUI窗口,绘图会被覆盖,但如果要保存为PDF,它们会出现在连续的页面上。


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

pdf(..., height = 3)
# ...
dev.off()

默认情况下,这会在每个页面的中心绘制每个绘图。 通过设置pagecentre = FALSE ,图形显示在每页的底部。 我还没有在pdf找到一个选项让它们出现在顶部。

为了更好地控制图的位置,首先将它们保存到eps(使用postscript函数)或png。

然后,您可以使用sweave创建一个格式化的PDF格式,包括那些文件。 或者,在您选择的文字处理器中创建文档并手​​动导入图像文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM