X-Git-Url: https://git.auder.net/?p=talweg.git;a=blobdiff_plain;f=R%2Fplot.R;h=a7c93955f0abcfbace860206da5d178247972fa6;hp=e5d4753de2c9252bf57d74276ac4ed2f383d47bf;hb=09cf9c19b5c6a04bc23c58b7ac8a4bbae2c6827d;hpb=3d69ff21e577fc7bb082257280661b64536c20e8 diff --git a/R/plot.R b/R/plot.R index e5d4753..a7c9395 100644 --- a/R/plot.R +++ b/R/plot.R @@ -13,9 +13,9 @@ plotPredReal <- function(data, pred, index) par(mar=c(4.7,5,1,1), cex.axis=2, cex.lab=2, lwd=2) measure = data$getSerie(pred$getIndexInData(index)+1)[1:horizon] yrange = range( pred$getSerie(index), measure ) - plot(measure, type="l", ylim=yrange, lwd=3) + plot(measure, type="l", ylim=yrange, lwd=3, xlab="Temps (en heures)", ylab="PM10") par(new=TRUE) - plot(pred$getSerie(index), type="l", col=2, ylim=yrange, lwd=3) + plot(pred$getSerie(index), type="l", col="#0000FF", ylim=yrange, lwd=3, xlab="", ylab="") } #' @title Plot filaments @@ -85,20 +85,23 @@ plotSimils <- function(pred, index) #' @description Draw error graphs, potentially from several runs of \code{getForecast} #' #' @param err Error as returned by \code{getError} +#' @param cols Colors for each error (default: 1,2,3,...) #' #' @seealso \code{\link{plotPredReal}}, \code{\link{plotFilaments}}, \code{\link{plotSimils}} #' \code{\link{plotFbox}} #' #' @export -plotError <- function(err) +plotError <- function(err, cols=seq_along(err)) { + if (!is.null(err$abs)) + err = list(err) par(mfrow=c(2,2), mar=c(4.7,5,1,1), cex.axis=2, cex.lab=2, lwd=2) L = length(err) yrange = range( sapply(1:L, function(index) ( err[[index]]$abs$day ) ), na.rm=TRUE ) for (i in seq_len(L)) { plot(err[[i]]$abs$day, type="l", xlab=ifelse(i==1,"Temps (heures)",""), - ylab=ifelse(i==1,"Moyenne |y - y_hat|",""), ylim=yrange, col=i) + ylab=ifelse(i==1,"Moyenne |y - y_hat|",""), ylim=yrange, col=cols[i]) if (i < L) par(new=TRUE) } @@ -106,7 +109,7 @@ plotError <- function(err) for (i in seq_len(L)) { plot(err[[i]]$abs$indices, type="l", xlab=ifelse(i==1,"Temps (jours)",""), - ylab=ifelse(i==1,"Moyenne |y - y_hat|",""), ylim=yrange, col=i) + ylab=ifelse(i==1,"Moyenne |y - y_hat|",""), ylim=yrange, col=cols[i]) if (i < L) par(new=TRUE) } @@ -114,7 +117,7 @@ plotError <- function(err) for (i in seq_len(L)) { plot(err[[i]]$MAPE$day, type="l", xlab=ifelse(i==1,"Temps (heures)",""), - ylab=ifelse(i==1,"MAPE moyen",""), ylim=yrange, col=i) + ylab=ifelse(i==1,"MAPE moyen",""), ylim=yrange, col=cols[i]) if (i < L) par(new=TRUE) } @@ -122,7 +125,7 @@ plotError <- function(err) for (i in seq_len(L)) { plot(err[[i]]$MAPE$indices, type="l", xlab=ifelse(i==1,"Temps (jours)",""), - ylab=ifelse(i==1,"MAPE moyen",""), ylim=yrange, col=i) + ylab=ifelse(i==1,"MAPE moyen",""), ylim=yrange, col=cols[i]) if (i < L) par(new=TRUE) } @@ -136,7 +139,7 @@ plotError <- function(err) #' @param fiter Optional filter: return TRUE on indices to process #' #' @export -plotFbox <- function(data, filter=function(index) (TRUE)) +plotFbox <- function(data, filter=function(index) TRUE) { if (!requireNamespace("rainbow", quietly=TRUE)) stop("Functional boxplot requires the rainbow package")