Para construir animaciones con la librería gganimate debemos usarla conjuntamente con ggplot2

library(ggplot2)
library(ggpubr)

Vamos a mostrar cómo animar un diagrama de puntos a partir de una variable. Usaremos el conjunto real de datos RiesgoPobrezaTasa.xls que contiene la tasa de riesgo de pobreza en las comunidades autónomas de España desde el año 2008 hasta el 2020.

if(!"readxl" %in% installed.packages())
  install.packages("readxl")

library(readxl)
#Importemos el conjunto de datos
data <- read_excel("RiesgoPobrezaTasa.xls")

Utilizaremos este conjunto de datos para mostrar un gráfico de líneas, representando cómo varía de forma temporal la tasa de riesgo de pobreza. Para ello, empleamos la función geom_line(). Además, clasificaremos por comunidades autónomas (la variable ccaa).

ggplot(data)+
  aes(x=agno,y=riesgo1,colour=ccaa)+
  geom_line(aes(linetype=ccaa))+
  labs(title="Tasa de Riesgo de Pobreza",x="Año",y="Tasa")+
  scale_colour_discrete(name="CCAA")+
  guides(linetype="none")+
  theme_minimal()

Si queremos guardar el gráfico, podemos utilizar la función ggsave(). Por ejemplo, en formato jpeg. También podemos guardarlo en formato pdf.

gplot <- ggplot(data)+
  aes(x=agno,y=riesgo1,colour=ccaa)+
  geom_line(aes(linetype=ccaa))+
  labs(title="Tasa de Riesgo de Pobreza",x="Año",y="Tasa")+
  scale_colour_discrete(name="CCAA")+
  guides(linetype="none")+
  theme_minimal()

ggsave("Pobreza",gplot,device="jpeg")
## Saving 7 x 5 in image

Otra función interesante, en esta ocasión de la librería ggpubr, es ggarrange() que permite representar dos o más gráficos creados con ggplot2 en una misma gráfica, en la que además se puede unificar su leyenda.

gplot1 <- ggplot(data)+
  aes(x=agno,y=riesgo1,colour=ccaa)+
  geom_line()+
  labs(title="Tasa de Riesgo de Pobreza",x="Año",y="Tasa")+
  scale_colour_discrete(name="CCAA")+
  guides(linetype="none")+
  theme_minimal()

gplot2 <- ggplot(data)+
  aes(x=agno,y=riesgo2,colour=ccaa)+
  geom_line()+
  labs(title="Tasa de Riesgo de Pobreza",x="Año",y="Tasa")+
  scale_colour_discrete(name="CCAA")+
  guides(linetype="none")+
  theme_minimal()

ggarrange(gplot1,gplot2,ncol=1,nrow=2,common.legend=TRUE)

Librería ´gganimate`

Vamos a construir un diagrama de puntos dinámico en el que representamos la tasa de riesgo de pobreza donde cada color representa una comunidad autónoma, y la animación dependerá del año. Para hacer la animación utilizamos la función transition_states() de la librería gganimate. Necesitamos además instalar algunos paquetes adicionales (transformry gifski).

if(!"transformr" %in% installed.packages()) install.packages("transformr")
if(!"gifski" %in% installed.packages()) install.packages("gifski")

library(gganimate)

ggplot(data)+
  aes(x=riesgo1,y=riesgo2,colour=ccaa)+
  geom_point()+
  labs(title="Tasa de Riesgo de Pobreza. Año: {closest_state}",x="Tasa",y="Tasa con alquiler imputado")+
  scale_colour_discrete(name="CCAA")+
  theme_bw()+
  transition_states(agno,transition_length = 0.5, state_length = 0.3)

Finalmente, para guardar el gráfico animado, debemos introducir el gráfico en una variable, por ejemplo gplot y utilizar la función anim_save().

gplot <- ggplot(data)+
  aes(x=riesgo1,y=riesgo2,colour=ccaa)+
  geom_point()+
  labs(title="Tasa de Riesgo de Pobreza. Año: {closest_state}",x="Tasa",y="Tasa con alquiler imputado")+
  scale_colour_discrete(name="CCAA")+
  theme_bw()+
  transition_states(agno,transition_length = 0.5, state_length = 0.3)



anim_save("anim_Riqueza.gif",gplot)