我知道如何将绘图作为 pdf 保存到磁盘...
pdf(file = "sample.pdf")
plot(x=1:2,y=1:2)
dev.off()
但是,我可以不让
sample.pdf
使 pdf 成为全局环境中的对象吗?我想任意调整一些图的大小并将它们组合在网格中。我可以通过将绘图保存到磁盘并应用 Imagemagick 来做到这一点...但如何跳过导出和重新导入步骤?
您可以使用
layout
。 gridExtra
专为 ggplot2
设计。
> pdf('sample.pdf', 6, 4) ## open pdf device
> op <- par(mar=c(4, 4, 1, 1)) ## set margins
> layout(matrix(c(1, 2, 1, 3), nrow=2)) ## define device layout
> # layout.show(3) ## show layout for three plots
> plot(1:10)
> plot(1:10, col=2)
> plot(1:10, col=3)
> layout(1) ## reset layout
> par(op) ## reset pars
> dev.off() ## close device
RStudioGD
2
或者使用
split.screen
,可以非常灵活。
> pdf('sample.pdf', 6, 4) ## open pdf device
> op <- par(mar=c(4, 4, 1, 1)) ## set margins
> split.screen(matrix(c(
+ 0, 1, 0.5, 1, # Top full-width screen
+ 0, 0.5, 0, 0.5, # Bottom-left screen
+ 0.5, 1, 0, 0.5 # Bottom-right screen
+ ), ncol=4, byrow=TRUE))
[1] 1 2 3
> screen(1)
> plot(1:10)
> screen(2)
> plot(1:10, col=2)
> screen(3)
> plot(1:10, col=3)
> close.screen(all=TRUE) ## Close all screens
> par(op) ## reset pars
> dev.off() ## close pdf device
RStudioGD
2