R:使用 marrangeGrob 制作 pdf 结果第一页空白
R: Using marrangeGrob to make pdf results in blank first page
我正在制作一些 pdf 文件,每页都有多个图表,当我使用 gridextra 包中的 marrangeGrob 制作这些图表时,第一页总是空白。如何让情节从第一页开始?下面是一些示例代码:
library(gridextra)
library(ggplot2)
data(iris)
Plotlist <- list()
Plotlist[[1]] <- ggplot(data = subset(iris, Species == "setosa"),
aes(x = Sepal.Width, y = Sepal.Length)) +
geom_point()
Plotlist[[2]] <- ggplot(data = subset(iris, Species == "versicolor"),
aes(x = Sepal.Width, y = Sepal.Length)) +
geom_point()
Plotlist[[3]] <- ggplot(data = subset(iris, Species == "virginica"),
aes(x = Sepal.Width, y = Sepal.Length)) +
geom_point()
pdf("iris.pdf", width = 8.5, height = 11)
marrangeGrob(Plotlist, nrow = 2, ncol = 1)
dev.off()
pdf 的第 2 页甚至在顶部说 "Page 1 of 2",所以某处有些断开。
我的猜测是最近在 ggplot2 中进行了一些更改,以调用网格函数来评估需要打开设备的网格单元。
您可以试试这个解决方法,
glist <- lapply(Plotlist, ggplotGrob)
ggsave("iris.pdf", marrangeGrob(glist, nrow = 2, ncol = 1))
使用@baptiste 的变通方法时,第一页仍然是空白。 ggpubr
中用于 multi-page 从绘图列表中绘制的函数对我有用(来自 here):
multi.page <- ggpubr::ggarrange(plotlist = glist, nrow = 1, ncol = 2)
ggpubr::ggexport(multi.page, filename = "multi.page.ggplot2.pdf")
我正在制作一些 pdf 文件,每页都有多个图表,当我使用 gridextra 包中的 marrangeGrob 制作这些图表时,第一页总是空白。如何让情节从第一页开始?下面是一些示例代码:
library(gridextra)
library(ggplot2)
data(iris)
Plotlist <- list()
Plotlist[[1]] <- ggplot(data = subset(iris, Species == "setosa"),
aes(x = Sepal.Width, y = Sepal.Length)) +
geom_point()
Plotlist[[2]] <- ggplot(data = subset(iris, Species == "versicolor"),
aes(x = Sepal.Width, y = Sepal.Length)) +
geom_point()
Plotlist[[3]] <- ggplot(data = subset(iris, Species == "virginica"),
aes(x = Sepal.Width, y = Sepal.Length)) +
geom_point()
pdf("iris.pdf", width = 8.5, height = 11)
marrangeGrob(Plotlist, nrow = 2, ncol = 1)
dev.off()
pdf 的第 2 页甚至在顶部说 "Page 1 of 2",所以某处有些断开。
我的猜测是最近在 ggplot2 中进行了一些更改,以调用网格函数来评估需要打开设备的网格单元。
您可以试试这个解决方法,
glist <- lapply(Plotlist, ggplotGrob)
ggsave("iris.pdf", marrangeGrob(glist, nrow = 2, ncol = 1))
使用@baptiste 的变通方法时,第一页仍然是空白。 ggpubr
中用于 multi-page 从绘图列表中绘制的函数对我有用(来自 here):
multi.page <- ggpubr::ggarrange(plotlist = glist, nrow = 1, ncol = 2)
ggpubr::ggexport(multi.page, filename = "multi.page.ggplot2.pdf")