Función

Mi funcion (mi_funcion) grafica objetos de clase ts y recibe como parametros la frecuencias de tiempo (frecuencia), el tipo de grafico deseado (tipo_grafica) y la serie de tiempo a graficar (parametro).

mi_funcion<-function(frecuencia,tipo_grafica,parametro){
  if(class(parametro)=="ts"){
    if(frecuencia=="month"){
      o1<-paste(start(parametro)[1],start(parametro)[2],1,sep="/") %>% ymd()
      o2<-paste(end(parametro)[1],end(parametro)[2],1,sep="/") %>% ymd()
      secuencia<-seq.Date(from=o1,to=o2,by=frecuencia)
    } else if(frecuencia=="quarter"){
      o1<-paste(start(parametro)[1],start(parametro)[2],sep="/") %>% yq()
      o2<-paste(end(parametro)[1],end(parametro)[2],sep="/") %>% yq()
      secuencia<-seq.Date(from = o1,to=o2,by=frecuencia)
    }else if(frecuencia=="year"){
      o1<-paste(start(parametro)[1],1,1,sep="/") %>% ymd()
      o2<-paste(end(parametro)[1],1,1,sep="/") %>% ymd()
      secuencia<-seq.Date(from=o1,to=o2,by=frecuencia)
    }
    df<-data.frame(Fechas=secuencia,Valor=as.numeric(as.vector(parametro)))
  } else{
    stop('class(s1) is not ts')
  }
  if(tipo_grafica=="ggplot"){
    grafica<-ggplot(df)+geom_line(aes(x=Fechas,y=Valor), color="green", size=1.3)+
      geom_point(aes(x=Fechas,y=Valor), color="blue", size=2)+ggtitle("Serie de tiempo")+
      labs(x="Tiempo", y="Serie")+
      theme_bw()+theme(plot.title = element_text(hjust = 0.5))
    return(grafica)
  }else if(tipo_grafica=="plotly"){
    grafica<-ggplot(df)+geom_line(aes(x=Fechas,y=Valor), color="green", size=1.3)+
      geom_point(aes(x=Fechas,y=Valor), color="blue", size=2)+ggtitle("Serie de tiempo")+
      labs(x="Tiempo", y="Serie")+
      theme_bw()+theme(plot.title = element_text(hjust = 0.5))
    return(ggplotly(grafica))
  }else if(tipo_grafica=="plot"){
    grafica<-plot(x=df[,1],y=df[,2], col="blue", main="Serie de tiempo", xlab = "Tiempo", ylab = "Serie",
             lwd=1.5,pch=19)
    lines(x=df[,1],y=df[,2], col="green", lwd=1.4)
    return(grafica) 
  }else{
    stop('This option is not available')
  }
}

Ejemplos

Aqui daremos explicación y ejemplos al estilo de la documentación de funciones de R. Se mostrarán tres ejemplos con 3 series de tiempos distintas (AirPassengers, airmiles y MC1001.xls) y con distintos tipos de graficas (plotly, ggplot y plot).

plotly

En nuestro primer ejemplo usamos los datos de los ingresos por millas recorridas por las aerolíneas comerciales en los Estados Unidos para cada año desde 1937 hasta 1960, y usamos una grafica de tipo plotly.

ggplot

Aqui se usan los datos de la aerolínea Box & Jenkins totales mensuales de pasajeros de aerolíneas internacionales, 1949 a 1960, y hacemos una grafica de tipo ggplot.

plot

Para el ultimo ejemplo usaremos la base del archivo MC1001.xls y usaremos un grafico de tipo plot.

## NULL