7 ¿Y ahora qué?

A lo largo del libro hemos discutido cómo emplear el paquete ggplot2 para crear visualizaciones. Para este momento debes estar convencido que este paquete es flexible y permite realizar visualizaciones impactantes y de gran calidad. Este paquete hace aún más versátil la base de R. Si unimos este paquete al de dplyr, tendremos unas herramientas que permiten optimizar el flujo de trabajo cuando empleamos datos para realizar visualizaciones.

En la comunidad R encontrarás numerosos paquetes para adicionar funcionalidades a ggplot, pero no quisiéramos terminar esta obra sin mostrarte dos paquetes que con seguridad te parecerán maravillosos.

El paquete plotly (Sievert, 2020) permite transformar visualizaciones realizadas en ggplot2 en visualizaciones interactivas31. Por ejemplo, trabajemos con la Figura 5.5. Esta era un gráfico de burbujas que tenía en el eje horizontal el PIB percápita, en el vertical la esperanza de vida al nacer, el tamaño de cada punto es la población y el color corresponde al continente. Recreemos ese gráfico y guardémoslo en un objeto.

# cargamos los paquetes
library(ggplot2)
library(dplyr)
library(gapminder)

# se guarda el gráfico en un objeto
g1 <- gapminder %>% 
  filter(year == 2007) %>% 
  ggplot(aes(x = gdpPercap, y = lifeExp,
             size = pop, col = continent )) +
  geom_point() +
  labs(  x = "PIB percápita ($US)", 
         y = "Esp. de vida", 
         size = "Población",
         col = "Continente") +
  theme_minimal() + 
   theme(legend.position = "bottom")

Ahora podemos animar este gráfico empleando solo una línea de código. La función ggplotly() del paquete plotly (Sievert, 2020) solo requiere como argumento un objeto de clase ggplot. Es decir, la Figura 7.1 la podemos crear con la siguiente línea de código.

# instala el paquete si no o tienes
# install.packages("plotly")
# cargamos el paquete
library(plotly)
# convertimos a interactivo el gráfico
ggplotly(g1)



Figura 7.1: Gráfico interactivo de la relación del PIB percápita, la esperanza de vida y población alrededor del mundo (2007)



Este tipo de visualizaciones (ver Figura 7.1) permiten al usuario interactuar con los datos. Juega un rato con este gráfico. Se pueden apagar los continentes y hacer zoom. Pasa el cursor por encima de un punto para ver la información. La interacción solo funciona en la versión web del libro (https://www.icesi.edu.co/editorial/empezando-usar-web/).

Otro paquete que puede llevar tus visualizaciones a otro nivel es gganimate (Pedersen & Robinson, 2020). Este paquete permite generar gráficos animados como el de la Figura 7.2. Este gráfico no es interactiva como la Figura 7.1, pero sí permite ver la evolución en el tiempo de la misma relación entre la esperanza de vida como el PIB percápita. Aquí podemos ver cómo, por continente, han mejorado tanto la esperanza de vida como el PIB percápita. La animación solo funciona en la versión web del libro (https://www.icesi.edu.co/editorial/empezando-usar-web/).



Figura 7.2: Visualización animada de la evolución del PIB percápita y la esperanza de vida alrededor del mundo (1952-2007).

Visualización animada de la evolución del PIB percápita y la esperanza de vida  alrededor del mundo (1952-2007).
Fuente: Cálculos propios empleando datos simulados.





El código que produce la Figura 7.2 se presenta a continuación. No es tan complicado, pero debes seguirlo con cuidado y nota que estamos empleando nuevas funciones de ggplot2 como facet_wrap() y scale_colour_manual(). No obstante estas funciones son nuevas para ti, con lo aprendido hasta ahora ya puedes saber cuáles son las capas que modifican estas funciones. Y recuerda que siempre está disponible la ayuda y la documentación para aprender más sobre las nuevas funciones.

g.anidado <- ggplot(gapminder, aes(x = gdpPercap, y= lifeExp, 
                              size = pop, colour = country)) +
  geom_point(alpha = 0.7, show.legend = FALSE) +
  scale_colour_manual(values = country_colors) +
  scale_size(range = c(2, 12)) +
  facet_wrap(~continent) +
    theme_minimal() +
  labs(title = 'Año: {frame_time}',
       x = 'PIB percápita', 
       y = 'Esperanza de vida (años)') +
  transition_time(year) +
  ease_aes('linear')

g.anidado 

Estas visualizaciones interactivas y animadas son ejemplo de lo versátil que es R para generar visualizaciones de tus datos. Esperamos que esta obra te motive a continuar tu camino de aprendizaje y unirte a la gran comunidad de R. En este universo de R, ¡la imaginación es el límite!

Referencias

Pedersen, T. L., & Robinson, D. (2020). Gganimate: A grammar of animated graphics. https://CRAN.R-project.org/package=gganimate
Sievert, C. (2020). Interactive web-based data iczation with r, plotly, and shiny. Chapman; Hall/CRC. https://plotly-r.com

  1. Puedes encontrar una breve introducción a la construcción de gráficos interactivos con el paquete plotly (Sievert, 2020) en el siguiente enlace: https://youtu.be/EWjxic2ce9g . ↩︎