在R中使用marrangeGrob和ggsave的页码位置

时间:2018-04-04 08:56:39

标签: r gridextra

这是一个微不足道的问题,但我还是想解决。我使用marrangeGrobggsave导出一系列图表。我想更改使用marrangeGrob生成的页码的默认位置,从页面顶部到右下角。

基于这个问题; Remove page numbers from marrangeGrob (or arrangeList) pdf,我可以包含参数top = NULL, bottom = quote(paste("page", g, "of", pages))以将页码转移到每个页面的底部,但页码仍然位于中心。

我可以在paste语句的开头添加大量空间,因此:" page"但看起来真的很难看。有更好的方法吗?

示例数据

library(ggplot2)
library(gridExtra)

# Create some plots
p1 <- qplot(mpg, wt, data = mtcars, colour = cyl)
p2 <- qplot(mpg, data = mtcars) + ggtitle("title")
p3 <- qplot(mpg, data = mtcars, geom = "dotplot")

# Combine into a list, and change where page numbers will appear
Export <- marrangeGrob(list(p1, p2, p3), nrow = 2, ncol = 1, top = NULL, 
               bottom = quote(paste("page", g, "of", npages)))

# Export to a pdf file
ggsave(filename = "multipage.pdf", Export, width = 7, height = 10, units = "in")

1 个答案:

答案 0 :(得分:2)

你可以传递一个grob而不是一个字符串,

bottom = quote(grid::textGrob(paste("page", g, "of", npages), x=1, hjust=1))