Añadir textos en R con las funciones text y mtext

Datos de muestra

Los datos usados en los ejemplos de esta guía son los siguientes:

# Datos
set.seed(123)
x <- 1:50
y <- x + rnorm(50, sd = 10)
groups <- sample(letters, 50, replace = TRUE)

La función text

Añadiendo textos

Puedes añadir textos a los gráficos de R base con la función text. Tan solo necesitas especificar las coordenadas y el texto que quieres agregar.

plot(x, y, pch = 19, col = 4)
text(x = 10, y = 50, # Coordenadas
     label = "Cuadro de texto")

Añadiendo textos en R con la función text

Personalización del texto

Los textos se pueden personalizar con los parámetros gráficos, tales como col, para el color, font para el estilo de fuente, o cex para el tamaño del texto.

plot(x, y, pch = 19, col = 4)
text(x = 15, y = 50, label = "Cuadro de texto",
     col = "red",   # Color del texto
     font = 2,      # Estilo
     cex = 1.5)     # Tamaño

Cambiar el color y estilo de los textos en R

Rotación

Puedes rotar el texto estableciendo un ángulo de rotación con el argumento srt.

plot(x, y, pch = 19, col = 4)

# Rotar 45 grados
text(x = 15, y = 50, label = "Cuadro de texto",
     srt = 45) # Rotación

Rotar un texto en R

Dividir el texto en varias líneas

Por último, cabe destacar que puedes dividir el texto en varias líneas con "\n".

plot(x, y, pch = 19, col = 4)

# Divide el texto en varias líneas
text(x = 15, y = 50,
     label = "Cuadro de\n texto") # Dividir el texto

Dividir un cuadro de texto en R

Etiquetar puntos de datos

Etiquetando observaciones en R

Si tienes una variable categórica puedes pasarla al argumento labels de la función text para etiquetar las observaciones. Puedes establecer la posición especificando las variables y ajustándolas.

plot(x, y, pch = 19, col = 4,
     ylim = c(-10, 70)) # Límites del eje Y
text(x = x, y = y - 3,  # Ajustar la posición
     label = groups) 

La función mtext

La función mtext se puede usar para añadir textos en los lados de un gráfico, especificando el lado con el argumento side.

side Posición
1 abajo
2 izquierda
3 arriba
4 derecha

Texto abajo

plot(x, y, pch = 19, col = 4)

# Texto abajo-centro
mtext("Texto abajo", side = 1)

Texto abajo con la función mtext

Texto a la izquierda

plot(x, y, pch = 19, col = 4)

# Izquierda-centro
mtext("Texto a la izquierda", side = 2)

Texto a la izquierda usando la función mtext

Texto arriba

plot(x, y, pch = 19, col = 4)

# Arriba-centro
mtext("Texto arriba", side = 3)

Texto en la parte superior con la función mtext

Texto a la derecha

plot(x, y, pch = 19, col = 4)

# Derecha-centro
mtext("Texto a la derecha", side = 4)

Texto en el lado derecho usando la función mtext de R

Ajuste mtext

Hay varios argumentos que puedes personalizar. Los más relevantes son:

  • line, para establecer la línea donde añadir los textos. El valor por defecto es 0.
  • adj, para ajustar el texto en la dirección de lectura desde 0 hasta 1 (el valor por defecto es 0.5).
  • at, para indicar donde añadir los textos en base al eje correspondiente.
  • Otros parámetros gráficos relacionados con los textos tales como col, cex, family y font.

Argumento side y ajuste de la función mtext en R

Texto arriba a la derecha

plot(x, y, pch = 19, col = 4)

# Arriba-derecha text
mtext("Arriba-derecha text",
      side = 3, adj = 1)

Argumento line de la función mtext

Texto arriba en el centro, línea 3

plot(x, y, pch = 19, main = "Título", col = 4)

# Texto arriba, línea 3 (sobre el título)
mtext("Texto arriba, línea 3",
      side = 3, line = 3)

Agregando varias líneas de texto con mtext

Texto arriba a la derecha, líneas 0, 1, 2, 3

plot(x, y, pch = 19, main = "Título", col = 4)

mtext("Arriba-derecha, línea 0",
      side = 3, adj = 1, line = 0)
mtext("Arriba-derecha, línea 1",
      side = 3, adj = 1, line = 1)
mtext("Arriba-derecha, línea 2",
      side = 3, adj = 1, line = 2)
mtext("Arriba-derecha, línea 3",
      side = 3, adj = 1, line = 3)

mtext la izquierda en la segunda línea

Texto a la izquierda en Y = 50, línea 2

plot(x, y, pch = 19, col = 4)

# Texto a la izquierda, línea 2, centrado en 50
mtext("Izquierda, Y = 50, línea 2",
      side = 2, at = 50, line = 2)

mtext no soporta rotación, solo un ajuste horizontal con las = 1 para el eje vertical o un ajuste vertical con las = 3 para el eje X. Si necesitas rotar los textos puedes utilizar la función text con el argumento srt en su lugar.

Storytelling con Datos

Visualización de datos para profesionales

Comprar en Amazon
Fundamentals of Data Visualization

A Primer on Making Informative and Compelling Figures

Comprar en Amazon
ggplot2

Elegant Graphics for Data Analysis

Comprar en Amazon

También te puede interesar