太多的开放设备r

时间:2014-06-13 14:39:34

标签: r

我正在尝试将多个图表写入一个olocation,而是编写一堆空白图片:

我的代码如下:

titleplot<-NULL
for(i in 1:99){
  titleplot<-colnames(data[i])
  mypath <- file.path("C:","Users","user.ME","Desktop","graph outputs", paste("myplot_", titleplot, ".jpg", sep = ""))
  plot(data[,i],type="l", main =titleplot)
  jpeg(file=mypath)
  dev.off()
}

有谁知道为什么会发生这种情况或我如何解决这个问题?

4 个答案:

答案 0 :(得分:7)

您应该在调用jpeg命令之前放置plot命令。

jpeg(file=mypath)
plot(...)
dev.off()

答案 1 :(得分:2)

之前我遇到过这个问题。如果您在dev.list()控制台中键入R,则会看到您尝试保存的所有图表。例如:

# tiff jpeg tiff jpeg tiff jpeg tiff jpeg tiff tiff tiff tiff tiff jpeg tiff tiff tiff 
# 2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17 18  

无论您在代码中放置dev.off(),如果您保存了许多绘图,就会遇到此问题。此问题的一种可能解决方案是重新启动R会话。

这可以在命令行中完成:.rs.restartR()或按ctrl+shift+F10

答案 2 :(得分:0)

将穆罕默德·沙克尔(Mohammed Shaker)和asb的答案结合起来,就可以得到非常简单的代码:

for (i in dev.list()[1]:dev.list()[length(dev.list())]) {
   dev.off()
}

这将删除所有打开的图形设备:

> dev.list()
NULL

答案 3 :(得分:-2)

只需保留打印dev.off()直到没有打开的设备