marrangeGrob
在行、列和页面中gridExtra
排列 grobs(在我的情况下通常是 ggplots)。它还对页面进行编号。
require(ggplot2)
require(plyr)
require(gridExtra)
p <- function(plotdata) {
x <- ggplot(plotdata, aes(wt, mpg)) +
geom_point() +
ggtitle(plotdata$gear[1])
return(x)
}
all <- dlply(mtcars, .(gear), p)
allarranged <- do.call(marrangeGrob, c(all, nrow=1, ncol=2))
ggsave("multipage.pdf", allarranged, width=12)
这是一个愚蠢但可重复的例子。
现在检查 的输出str(allarranged[[1]])
以显示页码的对象。简化为必需品,它们在这里:
[[1]]
$ children :List of 5
..$GRID.frame.1925:List of 6
.. ..$ children :List of 5
.. .. ..$ GRID.cellGrob.1927:List of 10
.. .. .. ..$ children :List of 1
.. .. .. .. ..$ GRID.text.1845:List of 11
.. .. .. .. .. ..$ label : chr "page 1 of 2"
我在那里编了前几行,因为我无法将输出写入str()
文件。不过,重点是存在的。 $label
是许多祖父母的问题孩子。$label
每个也有几个s arrangelist
(arrangeList
是的输出类arrangeGrob
)。
一旦你弄清楚了$label
s 的位置,就可以了: allarranged[[1]]$children$GRID.frame.1770$children$GRID.cellGrob.1772$children$GRID.text.1690$label <- NULL
但是如何预测整棵树,或者通过它递归寻找$label
s?如果这不是一个有趣的问题,我可能会联系 gridExtra 维护者。