Cómo modificar los títulos de los ejes en ggplot2

Tras haber explorado las distintas maneras de modificar el título de un gráfico en ggplot2, vamos a ver cómo modificar los títulos de los ejes en ggplot2 en cuanto a contenido y estilo.

library(ggplot2)

ggplot(msleep, aes(x=sleep_total, y=sleep_rem, color=vore)) +      
  geom_point() + 
  labs(title='El sueño de los mamíferos', 
       subtitle='Sueño REM frente a las horas totales de sueño', 
       caption='Proceedings of the National Academy of Sciences, 104 (3):1051-1056, 2007') -> p

Cómo modificar los títulos de los ejes

Para modificar los títulos de los ejes de un gráfico en ggplot, tenemos dos opciones. Una de ellas es utilizar de nuevo la función labs().

p + labs(x='Horas de sueño en total', y='Horas de sueño en fase REM')

Y la otra opción es utilizar las funciones xlab() e ylab().

p + 
  xlab('Horas de sueño en total') +
  ylab('Horas de sueño en fase REM') -> p 
p

Cómo cambiar el estilo de los títulos de los ejes

De nuevo, al igual que para modificar el estilo del título en ggplot2, necesitamos recurrir a la función theme() para dar un estilo diferente a los títulos de los ejes del gráfico.

library(showtext)
font_add_google('Anton')

p + theme(axis.title.x = element_text(family='Anton', face='bold'),
          axis.title.y = element_text(family='Anton', face='bold')) -> p
p

Cómo cambiar la posición de los títulos de los ejes

Para modificar la posición de los títulos de los ejes sobre le mismo, utilizaremos el argumento hjust dentro de la función element_text() con los argumentos axis.title.x y axis.title.y de theme().

p + theme(axis.title.x = element_text(family='Anton', face='bold', hjust=1),
          axis.title.y = element_text(family='Anton', face='bold', hjust=1))

Asignando el valor hjust=1 llevaremos el texto al final del eje. Si por el contrario deseásemos justificarlo al inicio del eje, deberíamos asignarle el valor 0.

De forma equivalente, podríamos haber modificado simultáneamente ambos ejes:

p + theme(axis.title = element_text(family='Anton', face='bold', hjust=1))

Cómo añadir expresiones a los títulos de los ejes

En ocasiones, especialmente en el entorno académico, es habitual querer añadir expresiones a los títulos de los ejes, como por ejemplo letras griegas. Ésto es posible gracias a la función expression().

p + labs(x=expression(paste(alpha, delta, Omicron, 1000^2, x^(y + z), integral(f(x)*dx, a, b), sum(x[i], i==1, n))))

En resumen

Utiliza…

  • labs(x=..., y=...) o xlab(), ylab() para añadir títulos a los ejes

  • theme(axis.title=element_text(...) si quieres cambiar el estilo del título de los ejes

  • theme(axis.title=element_text(hjust=1)) para posicionar el título de los ejes al final de los mismos

  • labs(x=expression(paste(...))) si quieres usar expresiones matemáticas en el título de los ejes

Paula L. Casado
Paula L. Casado
Data Scientist

Científica de datos especializada en visualización de datos.

Relacionado