5

是否可以一次将图形绘制到多个输出设备中?我试过了:

getwd()

pdf("level1.pdf")
  pdf("level2.pdf")
    png("level3.png")

    x=1:10
    y=1:10
    plot(x, y)

    dev.off() # close level3
  dev.off() # close level2

  a=10:20
  b=-10:0
  plot(a,b)

dev.off() # close level1

XY 图只进入level3.png. (我应该进入所有 3 个文件)

奇怪的是,AB 图进入了 level2.pdf,而我希望它被写入 level1.pdf,因为 level2.pdf 应该已经关闭了?

4

2 回答 2

4
于 2013-02-26T08:50:17.763 回答
3

您可以将ggplot2绘图对象分配给变量并print多次分配:

library(ggplot2)
p <- ggplot(data.frame(x=1:10, y=1:10), aes(x=x, y=y)) + geom_point()

pdf('a.pdf')
print(p)
dev.off()

png('b.png')
print(p)
dev.off()

或者,使用ggsave(感谢 Roland;但是,这会在我的系统上打开一个虚拟窗口 - Ubuntu):

ggsave('a.pdf', p)
ggsave('b.png', p)

不确定“常规”情节,我ggplot2会尽可能使用。

于 2013-02-26T08:47:00.323 回答