3  Componentes

Este capítulo tiene el objetivo de mostrar los componentes de un gráfico en ggplot2. Utilizaremos un ejemplo sencillo y exploraremos sus componentes. No será un capítulo impresionante, pero nos ayudará a entender qué funciones utiliza ggplot2 por defecto según el tipo de datos que grafiquemos.

3.1 Capas

En primer lugar, vamos a generar un gráfico utilizando los datos del inventario forestal visto en el capítulo anterior, donde mostraremos la relación entre la altura y el diámetro de los árboles por especie.

## Crear gráfico
base_gg <- inventario_completo_tbl |> 
    ggplot(
      aes(x = dbh_mm, y = height_m, color = nombre_ifn)
    ) +
    geom_point()
## Imprimir gráfico
base_gg
Fig. 3.1: Gráfico con capas

3.2 Facetas

Las facetas son una forma de dividir un gráfico en subgráficos, de acuerdo a una variable categórica. Por defecto, ggplot2 utiliza la función facet_null() que indica que no se desea dividir el gráfico. Para comprobar que esto es cierto, vamos a añadir esta función al gráfico anterior.

Tip

Una característica de ggplot2 es que podemos guardar el gráfico en un objeto y añadir capas adicionales posteriormente.

## Añadir facetas
facets_gg <- base_gg + 
    facet_null()
## Imprimir gráfico
facets_gg
Fig. 3.2: Gráfico sin facetas

Vemos que el resultado de la es exactamente igual al de la . En el capítulo veremos otras opciones de facetas.

3.3 Escalas

Las escalas se encargar de mapear los valores de los datos a los valores estéticos (). En nuestro gráfico, hemos utilizado un total de tres estéticas:

  • x: diámetro del árbol en milímetros
  • y: altura del árbol en metros
  • color: especie del árbol

Por ello, por defecto se genera una escala para cada una de estas estéticas. Vamos a ver las que se generan por defecto:

##  Añadir escalas
scales_gg <- base_gg + 
    scale_x_continuous() +
    scale_y_continuous() +
    scale_color_discrete()
## Imprimir gráfico
scales_gg
Fig. 3.3: Escalas por defecto

Vemos varias cosas interesantes en el código que hemos añadido:

  • Las funciones de escalas empiezan por scale_*
  • En siguiente lugar, se añade el nombre de la estética que se quiere modificar
  • Finalmente, se añaden los argumentos necesarios para modificar la escala

El tercer punto es importante. Si tenemos una variable numérica, su escala será scale_*_continuous(), mientras que si es categórica, será scale_*_discrete().

Veremos los detalles de las escalas en el capítulo .

3.4 Coordenadas

Las coordenadas definen cómo se representan los datos en el gráfico. Por defecto, ggplot2 utiliza un sistema de coordenadas cartesianas. Vamos a ver cómo se ve nuestro gráfico con las coordenadas por defecto.

## Añadir coordenadas
coord_gg <- base_gg + 
    coord_cartesian()
## Imprimir gráfico
coord_gg
Fig. 3.4: Coordenadas por defecto

De nuevo, vemos que no se ha modificado el gráfico. Las funciones de coordenadas empiezan por coord_*, y en el capítulo veremos otras opciones de coordenadas.

3.5 Temas

Los temas definen el aspecto visual del gráfico. Por defecto, ggplot2 utiliza el tema theme_gray():

## Añadir tema
theme_gg <- base_gg + 
    theme_gray() +
    theme()
## Imprimir gráfico
theme_gg
Fig. 3.5: Tema por defecto

En el código anterior vemos dos funciones:

  • theme_*: se utilizan para aplicar un tema predeterminado que trae una serie de valores de los temas por defecto.

  • theme(): se utiliza para personalizar propiedades de forma unitaria.

De nuevo, veremos los detalles de los temas en el capítulo .

3.6 Resumen

En este capítulo hemos visto los componentes de un gráfico en ggplot2 que vienen por defecto. Vamos a unir todo lo que vimos en un bloque de código:

inventario_completo_tbl |> 
    ## Añadir capas
    ggplot(
      aes(x = dbh_mm, y = height_m, color = nombre_ifn)
    ) +
    geom_point() +
    ## Añadir facetas
    facet_null() +
    ## Añadir escalas
    scale_x_continuous() +
    scale_y_continuous() +
    scale_color_discrete() +
    ## Añadir coordenadas
    coord_cartesian() +
    ## Añadir tema
    theme_gray() +
    theme()
Fig. 3.6: Gráfico con todos los componentes

Referencias

Wickham, Hadley. 2010. «A layered grammar of graphics». Journal of Computational and Graphical Statistics 19 (1): 3-28. https://doi.org/10.1198/jcgs.2009.07098.