Las funciones geom_text
y geom_label
permiten añadir textos o etiquetas, respectivamente, a gráficos creados con ggplot2. Puedes añadir anotaciones a ciertas coordenadas de puntos o etiquetar las observaciones.
# install.packages("ggplot2")
library(ggplot2)
# install.packages("maps")
library(maps)
df <- data.frame(x = state.center$x, y = state.center$y,
state = state.name)
p <- ggplot(df, aes(x = x, y = y)) +
geom_polygon(data = map_data("state"),
color = "white",
aes(x = long, y = lat,
fill = map_data("state")$region,
group = group)) +
guides(fill = FALSE)
p
En esta guía vamos a usar el siguiente gráfico de ejemplo.
geom_text
Añadir anotaciones de texto
p +
geom_text(aes(x = -115, y = 25,
label = "Mapa de los Estados Unidos"),
stat = "unique")
Establece stat = "unique"
, ya que en otro caso las etiquetas se dibujarán para cada punto de tu data frame una encima de otra.
Personalizar las anotaciones
Existen varios argumentos que puedes personalizar, como el color o el tamaño del texto.
p +
geom_text(aes(x = -115, y = 25,
label = "Mapa de los Estados Unidos"),
stat = "unique",
size = 4, color = "red")
Si tu conjunto de datos contiene una variable que representa grupos o etiquetas puedes pasarla al argumento label
.
p +
geom_text(aes(label = state))
geom_label
Si prefieres agregar etiquetas en lugar de textos usa geom_label
. La función se comporta de la misma manera que la anterior, pero tiene un color de fondo, haciendo los textos más fáciles de leer.
Etiquetas
p +
geom_label(aes(x = -115, y = 25,
label = "Mapa de los Estados Unidos"),
stat = "unique")
Personalizar las etiquetas
p +
geom_label(aes(x = -115, y = 25,
label = "Mapa de los Estados Unidos"),
stat = "unique",
size = 5, color = "red", fill = "green")
Etiquetar observaciones
p +
geom_label(aes(label = state))
Usa ggrepel
para evitar que los textos o etiquetas se solapen.
ggrepel
Los textos y las etiquetas se colocan en las coordenadas que selecciones, pero se pueden solapar. El paquete ggrepel
proporciona las funciones geom_text_repel
y geom_label_repel
, que hacen que las etiquetas se repelen tanto como sea posible.
geom_text_repel
# install.packages("ggrepel")
library(ggrepel)
p +
geom_text_repel(aes(label = state))
geom_label_repel
# install.packages("ggrepel")
library(ggrepel)
p +
geom_label_repel(aes(label = state))
Puedes personalizar los colores, las fuentes otros argumentos de la misma manera que con geom_text
o geom_label
. Mira los ejemplos del paquete para más casos de uso.
ggtext
Si quieres personalizar las anotaciones completamente usa la función geom_richtext
del paquete ggtext
, ya que permite añadir formato markdown o HTML a tus anotaciones de texto.
Texto enriquecido
# install.packages("ggtext")
library(ggtext)
lab <- "*Mapa* de <span style = 'color:red'>USA</span>"
p +
geom_richtext(aes(x = -115, y = 25,
label = lab))
Rotar el texto
La función permite incluso rotar el texto, algo que no es posible con las funciones de ggplot2.
# install.packages("ggtext")
library(ggtext)
lab <- "*Mapa* de <span style = 'color:red'>USA</span>"
p +
geom_richtext(aes(x = -115, y = 27,
label = lab),
angle = 25)
También te puede interesar