Título, subtítulo, caption y tag en ggplot2

Cuando creas gráficos con ggplot2 puedes agregar un título, un subtítulo un caption (descripción) o un tag (una etiqueta, por ejemplo para indicar el número de la figura). Existen dos formas de añadir títulos: usando la función ggtitle o la función labs. La primera es solo para títulos y subtítulos, mientras que la segunda también permite agregar captions y tags.

Título

Opción 1. Usar ggtitle.

# install.packages(ggplot2)
library(ggplot2)

ggplot(economics, aes(date, unemploy)) +
  geom_area(fill = rgb(0, 0.5, 1, alpha = 0.5)) + 
  ggtitle("Título del gráfico con ggtitle()")

Añadir un título en ggplot2 con ggtitle

Opción 2. Usar labs.

También puedes usar la función labs para añadir el título.

# install.packages(ggplot2)
library(ggplot2)

ggplot(economics, aes(date, unemploy)) +
  geom_area(fill = rgb(0, 0.5, 1, alpha = 0.5)) + 
  labs(title = "Título del gráfico con labs()")

Título en ggplot2 con la función labs

Posición del título

La posición del título se puede establecer con respecto a todo el gráfico en lugar de solo el panel con el componente plot.title.position de la función theme. El valor por defecto "panel". Esto también se aplica al subtítulo.

# install.packages(ggplot2)
library(ggplot2)

ggplot(economics, aes(date, unemploy)) +
  geom_area(fill = rgb(0, 0.5, 1, alpha = 0.5)) + 
  labs(title = "Título en el margen del gráfico") + 
  theme(plot.title.position = "plot")

Personaliza la posición del título en ggplot2

Subtítulo

Puedes agregar un subtítulo de la misma manera que añadiste el título, pero usando el argumento subtitle.

Añadir un subtítulo en ggplot2

Opción 1. Usar ggtitle.

# install.packages(ggplot2)
library(ggplot2)

ggplot(economics, aes(date, unemploy)) +
  geom_area(fill = rgb(0, 0.5, 1, alpha = 0.5)) +  
  ggtitle("Título del gráfico",
          subtitle = "Subtítulo del gráfico")

Subtítulo en ggplot2 usando labs

Opción 2. Usar labs.

# install.packages(ggplot2)
library(ggplot2)

ggplot(economics, aes(date, unemploy)) +
  geom_area(fill = rgb(0, 0.5, 1, alpha = 0.5)) + 
  labs(title = "Título del gráfico",
       subtitle = "Subtítulo del gráfico")

Caption

Un caption se puede usar para describir la figura. Puedes agregarlo con el argumento caption de la función labs.

# install.packages(ggplot2)
library(ggplot2)

ggplot(economics, aes(date, unemploy)) +
  geom_area(fill = rgb(0, 0.5, 1, alpha = 0.5)) + 
  labs(title = "Título del gráfico",
       subtitle = "Subtítulo del gráfico",
       caption = "Este es el caption")

Añadir un caption o descripción a una figura en ggplot2

El componente plot.caption.position de la función theme permite alinear el caption al panel ("panel", por defecto) o al gráfico completo (“plot”).

# install.packages(ggplot2)
library(ggplot2)

ggplot(economics, aes(date, unemploy)) +
  geom_area(fill = rgb(0, 0.5, 1, alpha = 0.5)) + 
  labs(caption = "Este es el caption") +
  theme(plot.caption.position = "plot",
        plot.caption = element_text(hjust = 0))

Cambiando la posición del caption en ggplot2

Ten en cuenta que por defecto el caption está alineado a la derecha, así que puedes establecer hjust = 0 para moverlo a la izquierda del gráfico.

Tag

Añadir un tag a un gráfico en ggplot2

Los tags o etiquetas son útiles para indicar la numeración de las figuras en un documento. Puedes añadirlos con el argumento tag de la función labs.

# install.packages(ggplot2)
library(ggplot2)

ggplot(economics, aes(date, unemploy)) +
  geom_area(fill = rgb(0, 0.5, 1, alpha = 0.5)) + 
  labs(title = "Título del gráfico",
       subtitle = "Subtítulo del gráfico",
       caption = "Este es el caption",
       tag = "Fig. 1")

Cambiar la posición del tag en ggplot2

Posición del tag

La posición del tag se puede cambiar con el componente plot.tag.position de la función theme. Los posibles valores son "topleft" (por defecto), "top", "topright", "left", "right", "bottomleft", "bottom" o "bottomright".

# install.packages(ggplot2)
library(ggplot2)

ggplot(economics, aes(date, unemploy)) +
  geom_area(fill = rgb(0, 0.5, 1, alpha = 0.5)) + 
  labs(tag = "Fig. 1") +
  theme(plot.tag.position = "bottomright)

Estilos y ajustes adicionales

Los títulos, subtítulos, captions y tags se pueden personalizar con los componentes plot.title, plot.subtitle, plot.caption y plot.tag de la función theme, haciendo uso de element_text. Puedes modificar el color, la familia de la fuente, el tamaño del texto, el estilo de la fuente, el ángulo o el ajuste horizontal o vertical para cada texto tal y como se muestra a continuación.

Cambiar el estilo de los títulos en ggplot2, como modificar los colores, el tamaño, el estilo, la familia, el alto de línea o los márgenes

# install.packages(ggplot2)
library(ggplot2)

ggplot(economics, aes(date, unemploy)) +
  geom_area(fill = rgb(0, 0.5, 1, alpha = 0.5)) + 
  labs(title = "Título del gráfico",
       subtitle = "Subtítulo del gráfico",
       caption = "Este es el caption",
       tag = "Fig. 1") + 
  theme(plot.title = element_text(family = "serif",              # Familia de fuente del título
                                  face = "bold",                 # Estilo de fuente
                                  color = 4,                     # Color de la fuente
                                  size = 15,                     # Tamaño de la fuente
                                  hjust = 1,                     # Ajuste horizontal
                                  vjust = 1,                     # Ajuste vertical
                                  angle = -10,                   # Ángulo de la fuente
                                  lineheight = 1,                # Espacio entre líneas
                                  margin = margin(20, 0, 0, 0)), # Márgenes (t, r, b, l)
        plot.subtitle = element_text(hjust = 0),    # Personalizar el subtítulo
        plot.caption = element_text(hjust = 0.25),  # Personalizar el caption
        plot.tag = element_text(face = "italic"),   # Personalizar el tag
        plot.title.position = "plot",               # Posición del título y del subtítulo ("plot" o "panel")
        plot.caption.position = "panel",            # Posición del caption ("plot" o "panel")
        plot.tag.position = "top")                  # Posición del tag

También te puede interesar