Gráficos con animaciones

Aproveché el dataset del #datosdemiercoles de esta semana para probar hacer gráficos de ggplot con animaciones. El desafío consiste en analizar datos históricos de emisión de CO2 por país y región.

El dataset contiene la emisión de co2 a través de los años agrupada por nivel de ingresos.

co2_ingreso <- readr::read_csv("https://raw.githubusercontent.com/cienciadedatos/datos-de-miercoles/master/datos/2019/2019-08-21/co2_ingreso.csv")

library(tidyverse)
library(tidyquant)
library(janitor)
library(plotly)
#para animar el grafico
library(gganimate)
library(gifski)
#library(ggflags)

#Elimino valores faltantes
co2_ingreso$anio<- as.Date(as.character(co2_ingreso$anio), format = "%Y")
co2_ingreso$grupo[co2_ingreso$grupo=="Ingreso alto"]<-"6.Ingreso Alto"
co2_ingreso$grupo[co2_ingreso$grupo=="Ingreso medio-altos"]<-"5.Ingreso Medio-altos"
co2_ingreso$grupo[co2_ingreso$grupo=="Ingreso medio"]<-"4. Ingreso Medio"
co2_ingreso$grupo[co2_ingreso$grupo=="Ingreso medio-bajo"]<-"2. Ingreso Medio-bajo"
co2_ingreso$grupo[co2_ingreso$grupo=="Ingreso medio y bajo"]<-"3. Ingreso Medio y bajo"
co2_ingreso$grupo[co2_ingreso$grupo=="Ingreso bajo"]<-"1. Ingreso Bajo"

df<- subset(co2_ingreso, is.na(co2_ingreso$emision_co2)==F)

plot_ly(data = df, x = ~grupo, y = ~emision_co2, color = ~grupo, type = "box")

Claramente se observa que a medida que aumenta el nivel de ingresos las distribuciones se concentran en valores más altos de emisión de co2.

Si deslizamos el mouse por encima de cada boxplot se pueden observar las medidas resúmenes de las distribuciones para cada grupo de ingresos.

Vamos a analizar la evolución a través del tiempo de la emisión de co2 por grupos de ingresos.

ggplot(df,aes(x = anio, 
             y = emision_co2, 
             color = grupo)) + 
  geom_line(size=1.5) + 
  scale_x_date(breaks = scales::pretty_breaks(n = 10)) +
  labs(x = "Año", y = "Emisión Co2", title = "Evolución anual de emisión de Co2 según ingresos") +
  theme_minimal()+
  theme(plot.title = element_text(hjust = 0.5),
        plot.background = element_rect(size = 1, color = "pink", fill = "black"),
        text=element_text(size = 12, family = "Serif", color = "ivory"),
        axis.text.y = element_text(colour = "pink"),
        axis.text.x = element_text(colour = "pink"),
        legend.position = "top",
        legend.justification = c("center", "top"),
        legend.box.just = "center",
        legend.title = element_blank()) +
        transition_reveal(anio)

anim_save("evolucion_2.gif")

Hasta el año 2005 aproximadamente, pareciera que en general todos los grupos de ingresos tienen a aumentar la emisión de co2 a través de los años. Sin embargo, países con menores ingresos presentan un comportamiento más estable que países con mayores ingresos en donde se observa un crecimiento más acelerado.

A partir del año 2005, se observa una disminución en la emisión de co2 de países con ingresos altos y un aumento importante en la emisión de co2 para países que no tienen ingresos altos.