是否可以一次将图形绘制到多个输出设备中?我试过了:
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
Run Code Online (Sandbox Code Playgroud)
XY图仅进入level3.png.(我应该进入所有3个文件)
奇怪的是,AB图进入了level2.pdf,我预计它会被写入level1.pdf,因为level2.pdf应该已经关闭了?
您可以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()
Run Code Online (Sandbox Code Playgroud)
或者,使用ggsave(感谢 Roland;但是,这会在我的系统 - Ubuntu 上打开一个虚拟窗口):
ggsave('a.pdf', p)
ggsave('b.png', p)
Run Code Online (Sandbox Code Playgroud)
不确定“常规”图,我会ggplot2尽可能使用。