如何仅将 ggforce::facet_grid_paginate 的输出保存在一个 pdf 中?
How to save output from ggforce::facet_grid_paginate in only one pdf?
我正在使用 ggforce 包在多个页面上生成多面图:
library(ggforce)
for(i in 1:6){
ggplot(diamonds) +
geom_point(aes(carat, price), alpha = 0.1) +
facet_wrap_paginate(~cut:clarity, ncol = 2, nrow = 2, page = i)
ggsave(paste0("~/diamonds_", i, ".pdf"))
}
正在生成预期的 6 个 PDF 文件:
在 一个 6 页的 pdf 中输出的最简单方法是什么?
我知道这可以通过 reports
和 pdftools
包来完成,但我想知道是否有更直接的方法来完成此操作。我希望 ggforce 提供单页输出的功能,但看起来并非如此?
您甚至不需要使用 ggsave
您可以通过以下方式将所有这些地块合并为一个 pdf
:
pdf("~/diamonds_all.pdf")
for(i in 1:6){
print(ggplot(diamonds) +
geom_point(aes(carat, price), alpha = 0.1) +
facet_wrap_paginate(~cut:clarity, ncol = 2, nrow = 2, page = i))
}
dev.off()
我遇到了类似的问题,这是我的解决方案,基本上是 Mike H. answer 的扩展。
通常您想要绘制所有页面并且您事先不知道您有多少页,而且,您可能想要在标准 A4 尺寸的纸张上打印。所以:
library(ggforce)
gg <- ggplot(diamonds) +
geom_point(aes(carat, price)) +
facet_wrap_paginate(~cut:clarity, ncol = 2, nrow = 2, page = 1)
n <- n_pages(gg)
pdf('diamonds.pdf', paper= 'A4', w= 210/25.4, 297/25.4)
for(i in 1:n){
print(gg + facet_wrap_paginate(~cut:clarity, ncol = 2, nrow = 2, page = i))
}
dev.off()
代码应该是不言自明的。丑陋的是,你必须重复 facet_wrap_paginate(...)
两次或将其包装到专用函数中。我想听听更好的解决方案...
我正在使用 ggforce 包在多个页面上生成多面图:
library(ggforce)
for(i in 1:6){
ggplot(diamonds) +
geom_point(aes(carat, price), alpha = 0.1) +
facet_wrap_paginate(~cut:clarity, ncol = 2, nrow = 2, page = i)
ggsave(paste0("~/diamonds_", i, ".pdf"))
}
正在生成预期的 6 个 PDF 文件:
在 一个 6 页的 pdf 中输出的最简单方法是什么?
我知道这可以通过 reports
和 pdftools
包来完成,但我想知道是否有更直接的方法来完成此操作。我希望 ggforce 提供单页输出的功能,但看起来并非如此?
您甚至不需要使用 ggsave
您可以通过以下方式将所有这些地块合并为一个 pdf
:
pdf("~/diamonds_all.pdf")
for(i in 1:6){
print(ggplot(diamonds) +
geom_point(aes(carat, price), alpha = 0.1) +
facet_wrap_paginate(~cut:clarity, ncol = 2, nrow = 2, page = i))
}
dev.off()
我遇到了类似的问题,这是我的解决方案,基本上是 Mike H. answer 的扩展。
通常您想要绘制所有页面并且您事先不知道您有多少页,而且,您可能想要在标准 A4 尺寸的纸张上打印。所以:
library(ggforce)
gg <- ggplot(diamonds) +
geom_point(aes(carat, price)) +
facet_wrap_paginate(~cut:clarity, ncol = 2, nrow = 2, page = 1)
n <- n_pages(gg)
pdf('diamonds.pdf', paper= 'A4', w= 210/25.4, 297/25.4)
for(i in 1:n){
print(gg + facet_wrap_paginate(~cut:clarity, ncol = 2, nrow = 2, page = i))
}
dev.off()
代码应该是不言自明的。丑陋的是,你必须重复 facet_wrap_paginate(...)
两次或将其包装到专用函数中。我想听听更好的解决方案...