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