n <- 50
xx <- as.POSIXct("2012-01-01")+(3600*24)*(0:50)
xx <- c(xx,rev(xx))
yy <- c(c(0, cumsum(abs(rnorm(n)))), 0,rep(0, 50))
#plot   (xx, yy, type = "n")


poligon <- function(xx, yy) {
         polygon(xx, yy, col = "gray", border = "red")
}

yy2 <- yy[1:50]
bar <- function(yy2)  {
        barplot(yy2)
        }

library(microbenchmark)
microbenchmark(bar, times=1000)
## Unit: nanoseconds
##  expr min lq   mean median uq   max neval
##   bar  34 36 51.487     37 46 10411  1000
microbenchmark(poligon, times=1000)
## Unit: nanoseconds
##     expr min lq   mean median uq   max neval
##  poligon  33 34 54.009     34 44 15651  1000