in

Mapas de calor del calendario de series temporales

Mapas de calor del calendario de series temporales

Una nueva forma de visualizar datos de series temporales

Sarang Gupta

26 de diciembre de 2018·5 min de lectura

La serie de tiempo es una serie de datos que se indexan en orden de tiempo. El orden de tiempo puede expresarse en días, semanas, meses o años. La forma más común de visualizar datos de series de tiempo es usar un gráfico de líneas simple, donde el eje horizontal traza los incrementos de tiempo y el eje vertical traza la variable que se está midiendo. La visualización se puede lograr usando geom_line() en ggplot2 o simplemente usando el plot() funcionar en Base R.

En este tutorial, wIPresentaremos una nueva herramienta para visualizar datos de series temporales llamada Mapa de calor del calendario de series temporales. Veremos cómo se pueden dibujar mapas de calor de calendario de series temporales usando ggplot2. También exploraremos el calendarHeat() función escrita por Paul Bleicher (lanzada como código abierto bajo licencia GPL) que proporciona una manera fácil de crear la visualización.

Si alguna vez has estado en GitHub, definitivamente se habría tropezado con el siguiente cuadro que muestra la cantidad de contribuciones realizadas por un usuario durante el año pasado. El color de los mosaicos es representativo del número de contribuciones (como se describe en la leyenda en la parte inferior derecha del gráfico). Aquí, el mapa de calor del calendario proporciona una forma visualmente atractiva de visualizar la cantidad de confirmaciones realizadas por el usuario a lo largo del año en una vista similar a un calendario, lo que facilita la identificación de patrones o anomalías diarias.

1*1nCOi8PYnrX8LDCWA3Ua2w

Mapa de calor de Github

Otro gran ejemplo se puede encontrar en el siguiente artículo de Wall Street Journal, que muestra el número de personas infectadas medido durante 70 años en los 50 estados de EE. UU.

http://graphics.wsj.com/infectious-diseases-and-vaccines/

Aquí, el mapa de calor del calendario facilita la identificación de patrones anuales en la cantidad de personas infectadas por diversas enfermedades.

Para ilustrar el uso de Calendar Heatmaps, visualizaremos el precio de las acciones de Amazon (NASDAQ: AMZN) durante los últimos 5 años. Examinaremos los Precios de Cierre Ajustados, que se obtendrán a través de la tidyquant paquete.

Instalaremos e importaremos el tidyquant paquete para obtener los precios de las acciones de Amazon. También instalaremos e importaremos ggplot2 para realizar la visualización. El código R para calendarHeat() se puede descargar a través de la página de Github de Paul Bleicher.

# install tidyquant 
install.packages('tidyquant', repos = "http://cran.us.r-project.org")
library(tidyquant)
#install ggplot2
install.packages("ggplot2", repos = "http://cran.us.r-project.org") library(ggplot2)
#Load the function to the local through Paul Bleicher's GitHub page
source("https://raw.githubusercontent.com/iascchen/VisHealth/master/R/calendarHeat.R")
amznStock = as.data.frame(tidyquant::tq_get(c("AMZN"),get="stock.prices")) # get data using tidyquant 
amznStock = amznStock[year(amznStock$date) > 2012, ] # Using data only after 2012Using ggplot2

El proceso de creación de un mapa de calor de calendario con ggplot2 es algo engorroso. Necesitamos obtener los datos en la forma correcta antes de que se pueda hacer el mapa de calor. El siguiente código enumera el paso sobre cómo podemos dividir los datos para crear el mapa de calor del calendario usando ggplot2.

library(plyr)
library(plotly)
amznStock$weekday = as.POSIXlt(amznStock$date)$wday #finding the day no. of the weekamznStock$weekdayf<-factor(amznStock$weekday,levels=rev(1:7),labels=rev(c("Mon","Tue","Wed","Thu","Fri","Sat","Sun")),ordered=TRUE) #converting the day no. to factor amznStock$monthf<-factor(month(amznStock$date),levels=as.character(1:12),labels=c("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"),ordered=TRUE) # finding the month amznStock$yearmonth<- factor(as.yearmon(amznStock$date)) #finding the year and the month from the date. Eg: Nov 2018 amznStock$week <- as.numeric(format(amznStock$date,"%W")) #finding the week of the year for each date amznStock<-ddply(amznStock,.(yearmonth),transform,monthweek=1+week-min(week)) #normalizing the week to start at 1 for every month p <- ggplot(amznStock, aes(monthweek, weekdayf, fill = amznStock$adjusted)) + geom_tile(colour = "white") + facet_grid(year(amznStock$date)~monthf) + scale_fill_gradient(low="red", high="green") + xlab("Week of Month") + ylab("") + ggtitle("Time-Series Calendar Heatmap: AMZN Stock Prices") + labs(fill = "Price") p

Mapa de calor del calendario usando ggplot2

calendarHeat() hace que el proceso sea mucho más fácil. Solo necesitamos llamar a la función y especificar los siguientes cinco argumentos.

  • date: Fechas para las que es necesario graficar los datos.
  • values: Valores asociados a esas fechas.
  • color: La paleta de colores. El valor predeterminado es r2g (rojo a verde). Otras opciones predefinidas son r2b (rojo a azul) y w2b (blanco a azul). Puede crear su propia paleta definiendo un vector como se muestra a continuación.
  • ncolors: Número de colores para el mapa de calor
  • varname: Título del gráfico
r2g <- c("#D61818", "#FFAE63", "#FFFFBD", "#B5E384") calendarHeat(amznStock$date, amznStock$adjusted, ncolors = 99, color = "r2g", varname="AMZN Adjusted Close")
1* KZqY HFtIR5FMuSezsjqQ

Mapa de calor de calendario usando calendarHeat ()

calendarHeat() es una función predefinida, por lo que ofrece menos flexibilidad en términos de cómo se puede modificar el gráfico. Para actualizar la figura de formas distintas a los cinco argumentos que se especifican en el calendarHeat() función, necesitamos modificar el código subyacente para la misma. ggplot2 por otro lado, ofrece la flexibilidad a medida que construimos la visualización desde cero.

Es más, ggplotly se puede integrar con el ggplot2 gráfico para hacerlo más interactivo. Por ejemplo, usando ggplotly podremos conocer los precios de cada día. calendarHeat() por otro lado no se puede integrar con ggplotly (no estoy seguro de si existe un paquete que pueda ayudar a lograr la misma funcionalidad).

Cuando se trata de conveniencia, calendarHeat() proporciona una forma mucho más sencilla de construir el gráfico. Solo necesitamos llamar a una sola función, y un conjunto de datos relativamente estándar se puede visualizar fácilmente sin tener que hacer mucha manipulación de datos.

Los mapas de calor de calendario son útiles cuando los valores de “Valores diarios” o “Día de la semana” son importantes. Si queremos ver los valores diarios de todo el año, los mapas de calor del calendario son especialmente útiles.

Por otro lado, si queremos ver una tendencia (ejemplo: estacionalidad, forma, estacionariedad, etc.), los mapas de calor del calendario no son muy útiles. Estos tampoco representan una tendencia mensual o anual. Si queremos ver una tendencia agregada en los datos, un gráfico de líneas simple es una mejor manera de hacerlo.

https://www.r-bloggers.com/ggplot2-time-series-heatmaps, https://www.rdocumentation.org/packages/iClick/versions/1.4/topics/calendarHeat, https://github.com/ iascchen / VisHealth / blob / master / R / calendarHeat.R, https://www.tableau.com/about/blog/2017/2/viz-variety-show-heatmaps-66330

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

01drDv1Omrt6z2XHmn7sThl 1.1632501249.fit lim.size 1200x630

Kioxia sugiere SSD PCIe Gen 5.0 que puede alcanzar velocidades de 14.000 MB / s

Aplicación Express | Oráculo