Cómo hacer un gráfico con ggplot2

Si existe una librería por excelencia con la que hacer gráficos en R, esa es ggplot2. Existen otras opciones como R base o lattice, pero sin duda una de las más utilizadas recientemente es ggplot2.

Esta librería está basada en La gramática de los gráficos, un libro donde se detalla cómo describir y crear un gráfico. La filosofía principal es construir el gráfico mediante capas hasta llegar a la composición final.

Componentes

Básicamente, todos los gráficos se componen de la información que se quiere visualizar, véase los datos y de un mapeo, es decir, la descripción de cómo se mapean las variables de los datos a los atributos estéticos. Existen cinco componentes de mapeo:

  • Capas (Layers): Una capa es una colección de elementos geométricos, geoms, que representan loq ue se ve en el gráfico (puntos, líneas, polígonos, etc) y transformaciones estadísticas, stats, que resumen los datos (agrupamiento, recuento de observaciones o ajuste de un modelo lineal).

  • Escalas (Scales): Las escalas convierten los valores del espacio de datos en valores del espacio estético (color, forma o tamaño). Las escalas también dibujan la leyenda y los ejes, que permiten leer los valores originales de los datos a partir del gráfico (un mapeo inverso).

  • Coordendas (Coord): Una coordenada, o sistema de coordenadas, describe cómo se mapean las coordenadas de los datos al plano del gráfico. Además del sistema de coordenadas cartesianas, también se pueden utilizar las coordenadas polares y las proyecciones cartográficas.

  • Facetas (Facets): Una faceta especifica cómo dividir el gráfico en paneles.

  • Tema (Theme): Un tema controla los aspectos visuales del diseño del gráfico, como fuente o color de fondo.

Instalación

La instalación del paquete es algo tan sencillo como

install.packages('ggplot2')

Para empezar, no necesitaremos más que cargarlo a través de la función library.

library(ggplot2)

Partimos de que ya sabemos cómo instalar R, pero de no ser así, en la web de RStudio encontrarás los pasos a seguir para descargarlo e instalarlo. También puedes acudir al libro escrito en español R para profesionales de los datos: una introducción por Carlos Gil Bellota (@gilbellosta) que explica en detalle cómo utilizar R de forma muy cercana y fácil de entender. Además, incluye un apartado específico sobre ggplot, Introducción a ggplot2 .

Cómo hacer cualquier gráfico

Un resumen de los pasos para realizar cualquier gráfico:

  1. Llamar a la función ggplot()

  2. Añadir un conjunto de datos y un mapeo estético (con aes()) dentro de la función anterior

  3. Añadir capas según la geometría deseada (como geom_point() o geom_histogram())

  4. (Opcional) Añadir escalas (como scale_colour_brewer())

  5. (Opcional) Especificaciones de facetas (como facet_wrap())

  6. (Opcional) Utilizar sistemas de coordenadas específicos (como coord_flip()).

Un primer gráfico

Como seguramente ya habrás visto antes gráficos como este, te invito a dar el siguiente paso y realizar tu primer gráfico en ggplot con el siguiente código:

ggplot(data=msleep, aes(x=sleep_total, y=sleep_rem, color=vore)) + geom_point()

En R, no es obligatorio añadir el nombre del argumento de la función si los valores de entrada se indican en el orden por defecto. Por tanto, una sintaxis equivalente sería:

ggplot(msleep, aes(x=sleep_total, y=sleep_rem, color=vore)) + geom_point()

Y obtendríamos el mismo resultado. Una practica común para ahorrar tiempo y líneas de código, aunque no siempre es aconsejable.

Las capas se añaden a través del símbolo +. Por otro lado, es optativo el empezar la siguiente capa en una línea nueva o no.

¿Qué faltaría en este gráfico para ser más completo? Lo primero, el título y la fuente al pie del gráfico. También sería interesante modificar los títulos de los ejes y traducirlos al español. Poco a poco iremos viendo como hacer todos esos cambios. De momento, en el próximo post empezaremos por cómo añadir un título.

Conclusiones

En definitiva, hacer un gráfico simple es relativamente sencillo. Lo bueno es que ggplot nos permite añadir toda la complejidad que se desee.

El paquete, aunque es bastante completo, cuenta con numerosas extensiones de contribuciones de numerosos entusiastas de R. Puedes echar aquí un vistazo y ver de cuáles se tratan.

Recursos

Paula L. Casado
Paula L. Casado
Data Scientist

Científica de datos especializada en visualización de datos.

Relacionado