首页 > 解决方案 > 如何正确设置绘图循环?

问题描述

我仍然是一个在设置绘图循环(*.png 文件)方面苦苦挣扎的菜鸟。“打开设备失败”。老实说,我不知道该如何处理。

我的做法:

names =list(Pic1,Pic2,Pic3,Pic4,Pic5,Pic6,Pic7,Pic8,Pic9,P10)


for (i in 1:10){

mypath <- file.path("C:","Users",paste("myplot_",names[i],".png"))
png(file=mypath)
mytitle = paste("Training PIC", names[i])
par(mfrow=c(3,1), oma=c(2,2,4,2))
boxplot(ERRORS.train.pic[[i]], outline=F, ylab="RMSE(-)", xlab="K-No")
abline(h = 0, col = "red")
plot(sapply(ERRORS.train.pic[[i]], median), ylab="MEDIAN-RMSE(-)", xlab="K-No",type="l", col="blue")
plot(sapply(ERRORS.train.pic[[i]], mean), ylab="MEAN-RMSE (-)", col ="red")
title(main= mytitle, outer=T)
dev.off()
}

我收到以下错误代码:

Error in png(file = mypath) : kann png()-Gerät nicht starten
In addition: Warning messages:
1: In png(file = mypath) :
  kann Datei 'C:/Users/myplot_ A .png' nicht zum Schreiben öffnen
2: In png(file = mypath) : opening device failed

我非常感谢有关该问题的一些提示。在此先感谢,奥利

标签: rfor-loop

解决方案


显然 file.path 功能是问题所在。我采取了另一种方式并解决了这个问题。

我的解决方案:

dir <- "C:\\Users\\"
    names =list(Pic1,Pic2,Pic3,Pic4,Pic5,Pic6,Pic7,Pic8,Pic9,P10)
    for (i in 1:10){

    mypath <- paste0(dir,"Training-Result",names[i],".png")
    png(file=mypath)
    mytitle = paste("Training PIC", names[i])
    par(mfrow=c(3,1), oma=c(2,2,4,2))
    boxplot(ERRORS.train.pic[[i]], outline=F, ylab="RMSE(-)", xlab="K-No")
    abline(h = 0, col = "red")
    plot(sapply(ERRORS.train.pic[[i]], median), ylab="MEDIAN-RMSE(-)", xlab="K-No",type="l", col="blue")
    plot(sapply(ERRORS.train.pic[[i]], mean), ylab="MEAN-RMSE (-)", col ="red")
    title(main= mytitle, outer=T)
    dev.off()

任何人都可以提出一种如何使用 file.path 的方法,我仍然很感激。干杯!


推荐阅读