如何在R中分页生成多个图形并保存到不同的jpeg文件中?

5

我希望在R中使用文件名模式(例如JPEG) file.%03d.jpg ,将多个图绘制到单独的位图文件中。我尝试使用以下命令:

somevar <- 1
jpg(paste(sep='',filename,'.%03d.jpg'))
while(somevar <= n)
{
  plot(data[somevar])
  dev.new()
  somevar <- somevar + 1
}
dev.off()

但它只创建了一个.jpg文件和几个Rplotnnn.pdf文件。我该如何将默认设备更改为jpg,并使用自定义的文件名模式?


我会创建一个名称向量 my.names <- c("plot1.jpg", "plot2.jpg", "plot3.jpg"),然后执行 for (fn in my.names) ... jpeg(fn)... - Roman Luštrik
2
你使用JPEG格式而不是矢量格式有什么原因吗?我建议你改用PNG或PDF格式。调用方式相同,只需使用png代替jpg来设置设备即可。 - Andrie
确实。我现在使用 png,此外,问题与 R 中有些晦涩的 dev 机制有关。 - Vilinkameni
2个回答

6
我认为这应该可以工作。
somevar <- 1
while(somevar <= n) {
  jpg(sprintf("%s%03.jpg", filename, somevar))
  plot(data[somevar])
  dev.off()
  somevar <- somevar + 1
}

绘图从设备打开(这里是jpeg(...))到dev.off()结束。您可以控制文件名(我已更正您使用paste()的错误,并改用sprintf()),以及循环。


为什么选择 sprintf 而不是 paste? - Brandon Bertelsen

0
如果您从代码中删除dev.new()会发生什么?只要您继续向jpg设备(device)写入内容,jpg函数/设备应该会按照您的模式生成多个文件(dev.new调用每次都会启动一个新设备,因此会生成pdf文件)。

在这种情况下只创建了一个 jpg 文件。 - Vilinkameni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接