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.

También te puede interesar