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.
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()")

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()")

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")

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

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")

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")
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")

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))

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.

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")

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)
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.

# 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