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

Page number position using marrangeGrob and ggsave in R

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

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

我可以在 paste 语句的开头添加很多 space,因此: " 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")

您可以传递 grob 而不是字符串,

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