¿Qué es ggplot2?

Es un paquete de R específicamente diseñado para producir gráficos, pero a diferencia de otros paquetes, ggplot2 tiene su propia gramática o lenguaje de programación. Esta gramática está basada en la “Gramática de Gráficos” (Wilkinson 2005), la cual está hecha de componentes independientes que pueden ser compuestos en muchas formas. Esto permite que ggplot2 pueda crear gráficos muy flexibles, específicos para cualquier situación o problema. El paquete ggplot2 nace en el 2005, con la idea de tomar y mejorar lo bueno de la graficación “base” y “lattice” que existía en R, para crear un modelo más robusto de graficación.

En ggplot2 podemos empezar con una capa de datos crudos y luego adicionar más capas de anotaciones y resúmenes estadísticos. Este paquete permite producir gráficos empleando la misma estructura de pensamiento que usamos al diseñar un análisis, reduciendo la distancia de como visualizamos un gráfico en la cabeza y el producto final en nuestra hoja de trabajo.

Aprender la gramática para crear gráficos en ggplot2 no solo será crucial para producir un gráfico de interés, pero también para pensar en otros gráficos más complejos. En los gráficos base de R, cuando diseñamos un gráfico, normalmente está compuesto de elementos de graficación crudos como puntos y líneas, y es difícil diseñar nuevos componentes que se combinen con gráficos existentes. En ggplot2, las expresiones usadas para crear un nuevo gráfico están compuestas de elementos más complejos de los datos crudos, que permiten ser combinados fácilmente con otros sets de datos o gráficos.


¿Cuál es la gramática de ggplot2?

Wilkinson (2005) fue el responsable de crear la gramática de graficación para describir todos los atributos que son parte de lo gráficos estadísticos. El libro “The layer grammar of graphics” de Wickham (2010) construye a partir de la gramática de Wilkinson, enfocándose en la importancia de las capas y adaptándolas a R. En general, la gramática de ggplot2 nos dice que un gráfico estadístico es un mapeo de los datos a los atributos estéticos (color, forma, tamaño) y objetos geométricos (puntos, líneas, barras). El gráfico también puede contener transformaciones estadísticas de los datos y esta dibujado en un sistema de coordenadas específicas.

Componentes

Todos los gráficos están compuestos de:

  • Data - los datos que queremos visualizar y un conjunto de elementos estéticos que describen como las variables de los datos serán mapeadas a atributos estéticos que podemos percibir.
  • Las capas, las cuales están hechas de elementos geométricos (geom puntos, líneas, polígonos, etc.) y transformaciones estadísticas o stat (por ejemplo, juntar y contar observaciones para producir histogramas o resumir relaciones de un modelo lineal).
  • scale - la escala, mapea valores en el espacio de los datos a valores en un espacio estético, ya sea color, tamaño o forma. La escala dibuja la leyenda o ejes (X-Y).
  • coord. - el sistema de coordenadas describe como las coordenadas de los datos son mapeados en el plano de los datos. También produce los ejes y las líneas de cuadriculas para poder leer mejor el gráfico. Normalmente se usa un sistema de coordenadas cartesianas, pero hay otros sistemas disponibles (coordenadas polares, por ejemplo).
  • facet - describe como separar (break) los datos en subsets y como mostrar estos subsets en múltiplos más pequeños.
  • theme - controla los elementos más finos como el tamaño de la fuente y color del fondo.

Otros paquetes de graficación

Actualmente existen otros paquetes que han sido creados para resolver situaciones específicas, empleando un poco del modelo de graficación de ggplot2 como base. Entre ellos se pueden mencionar los siguientes:

Una lista más completa de todas las herramientas gráficas de graficación se puede encontrar en http://cran.r-project.org/web/views/Graphics.html.


Instalación

para usar ggplot2, primero necesitamos instalarlo, ojalá en la versión más reciente de R (version 3.2.0+) de la página web http://r-project.org y luego bajar/instalar ggplot2:


install.packages("ggplot2") 

Otros recursos

Existen miles de recursos en internet en donde podemos aprender más de ggplot2. Estos son solo algunas opciones:


¿Cómo usar ggplot2?

Gráficos de puntos

A continuación vamos a usar nuestro de set de datos de tiburones de Costa Rica para ilustrar como podemos crear graficos con ggplots. Veamos la relación entre el tamaño y el dN15 (isótopo estable de N15) para el tiburón Mustelus henlei y la raya Raja velezi.