保存循环遍历datetime对象的绘图

时间:2016-09-30 11:14:41

标签: r loops plot datetime-format

我自动保存图表时收到此错误消息,因此我将基于this代码的一个非常简单的示例放在一起,以说明我的挫败感。

这是基于示例的代码,显然有效:

names <- LETTERS[1:5] 

for(i in seq_along(names)){
  x <- rnorm(10, 5, 1)
  y <- seq(1:10)

  mypath <- file.path("YOUR_FILE_PATH",paste("myplot_", names[i], ".tiff", sep = ""))

  tiff(file=mypath)
  mytitle <- paste("my title is", names[i])
  plot(x,y, main = mytitle)
  dev.off()
}

现在用names替换POSIXlt对象中的字符串:

    dates <- c("2015-04-27 14:30:00","2015-04-27 18:15:00",
               "2015-04-27 22:30:00","2015-04-27 22:45:00",
               "2015-04-27 23:00:00")
    dates <- as.data.frame(dates)
    dates <- strptime(dates$dates,format = "%Y-%m-%d %H:%M:%S")

    for(i in seq_along(dates)){
      x <- rnorm(10, 5, 1)
      y <- seq(1:10)

      mypath <- file.path("YOUR_FILE_PATH",paste("myplot_", dates[i], ".tiff", sep = ""))

      tiff(file=mypath)
      mytitle <- paste("my title is", dates[i])
      plot(x,y, main = mytitle)
      dev.off()
    }

然后我得到一个弹出窗口,上面写着“FILEPATH / myplot_2015-04-27 14:30:00.tiff:无法打开”,R会给出以下错误信息:

Warning messages:
1: In dev.off() :
  unable to open TIFF file 'FILEPATH/myplot_2015-04-27 14:30:00.tiff'

好的,所以R似乎不喜欢POSIXlt对象。让我们试着打印这些图:

for(i in seq_along(dates)){
  x = rnorm(10, 5, 1)
  y = seq(1:10)

  mytitle = paste("my title is", dates[i])
  print(plot(x,y, main = mytitle))
}

这至少在重新启动R之后仍然有效,因为它仍然出于某种原因想要将绘图打印到之前指定的文件路径。所以问题不是格式,而是保存到文件。有人可以向我解释一下吗?

0 个答案:

没有答案