X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=R%2Fplot.R;h=9a0dbcd90147854d67bb33cad37c3aa30c6d55ce;hb=e030a6e31232332b73187eda25870e843152c174;hp=a7c93955f0abcfbace860206da5d178247972fa6;hpb=09cf9c19b5c6a04bc23c58b7ac8a4bbae2c6827d;p=talweg.git diff --git a/R/plot.R b/R/plot.R index a7c9395..9a0dbcd 100644 --- a/R/plot.R +++ b/R/plot.R @@ -1,3 +1,29 @@ +#' @title plot curves +#' +#' @description Plot a range of curves in data +#' +#' @param data Object of class Data +#' @param indices Range of indices (integers or dates) +#' +#' @export +plotCurves <- function(data, indices) +{ + yrange = range( sapply( indices, function(i) { + serie = c(data$getCenteredSerie(i)) + if (!all(is.na(serie))) + range(serie, na.rm=TRUE) + c() + }) ) + par(mar=c(4.7,5,1,1), cex.axis=1.5, cex.lab=1.5) + for (i in seq_along(indices)) + { + plot(data$getSerie(indices[i]), type="l", ylim=yrange, + xlab=ifelse(i==1,"Temps (en heures)",""), ylab=ifelse(i==1,"PM10","")) + if (ii < length(indices)) + par(new=TRUE) + } +} + #' @title plot measured / predicted #' #' @description Plot measured curve (in black) and predicted curve (in red) @@ -10,12 +36,12 @@ plotPredReal <- function(data, pred, index) { horizon = length(pred$getSerie(1)) - par(mar=c(4.7,5,1,1), cex.axis=2, cex.lab=2, lwd=2) + par(mar=c(4.7,5,1,1), cex.axis=1.5, cex.lab=1.5, lwd=3) measure = data$getSerie(pred$getIndexInData(index)+1)[1:horizon] yrange = range( pred$getSerie(index), measure ) - plot(measure, type="l", ylim=yrange, lwd=3, xlab="Temps (en heures)", ylab="PM10") + plot(measure, type="l", ylim=yrange, xlab="Temps (en heures)", ylab="PM10") par(new=TRUE) - plot(pred$getSerie(index), type="l", col="#0000FF", ylim=yrange, lwd=3, xlab="", ylab="") + plot(pred$getSerie(index), type="l", col="#0000FF", ylim=yrange, xlab="", ylab="") } #' @title Plot filaments @@ -45,13 +71,13 @@ plotFilaments <- function(data, index, limit=60) index = i - first_day + 1 serie = c(data$getCenteredSerie(index), data$getCenteredSerie(index+1)) if (!all(is.na(serie))) - return ( range(serie, na.rm=TRUE) ) - return (0) + range(serie, na.rm=TRUE) + c() }) ) grays = gray.colors(20, 0.1, 0.9) #TODO: 20 == magic number colors = c( grays[ floor( 20.5 * distances[indices] / (1+max(distances[indices])) ) ], "#FF0000") - par(mar=c(4.7,5,1,1), cex.axis=2, cex.lab=2, lwd=2) + par(mar=c(4.7,5,1,1), cex.axis=1.5, cex.lab=1.5, lwd=2) for (i in seq_len(length(indices)+1)) { ind = ifelse(i<=length(indices), indices[i] - first_day + 1, index) @@ -76,8 +102,8 @@ plotSimils <- function(pred, index) weights = pred$getParams(index)$weights if (is.null(weights)) stop("plotSimils only works on 'Neighbors' forecasts") - par(mar=c(4.7,5,1,1)) - hist(pred$getParams(index)$weights, nclass=20, xlab="Weight", ylab="Frequency") + par(mar=c(4.7,5,1,1), cex.axis=1.5, cex.lab=1.5) + hist(pred$getParams(index)$weights, nclass=20, xlab="Poids", ylab="Effectif") } #' @title Plot error @@ -95,7 +121,7 @@ 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) + par(mfrow=c(2,2), mar=c(4.7,5,1,1), cex.axis=1.5, cex.lab=1.5, 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)) @@ -162,7 +188,7 @@ plotFbox <- function(data, filter=function(index) TRUE) series_matrix = series_matrix[,-nas_indices] series_fds = rainbow::fds(seq_len(nrow(series_matrix)), series_matrix) - par(mfrow=c(1,2), mar=c(4.7,5,1,1), cex.axis=2, cex.lab=2) + par(mfrow=c(1,2), mar=c(4.7,5,1,1), cex.axis=1.5, cex.lab=1.5) rainbow::fboxplot(series_fds, "functional", "hdr", xlab="Temps (heures)", ylab="PM10", plotlegend=FALSE, lwd=2) rainbow::fboxplot(series_fds, "bivariate", "hdr", plotlegend=FALSE)