Cómo cambiar el estilo del título de la leyenda en ggplot2

En el último post vimos cómo modificar el título de la leyenda en un gráfico de ggplot2. Pero, ¿cómo podríamos cambiar el tipo de fuente o el color del título de la leyenda? En el post de hoy lo explicaremos en detalle.

Cómo cambiar el estilo del título de la leyenda

Para cambiar el estilo del título de la leyenda en ggplot2, utilizamos la función theme(). Con esta función podremos modificar el estilo de fuente, el color, el tamaño de letra o incluso la justificación del texto a través del argumento legend.title. Veamos un ejemplo.

Guardaremos en primer lugar el gráfico base sobre el que vamos a trabajar.

library(ggplot2)
library(showtext)
font_add_google('Anton')

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',
       x='Horas de sueño en total', y='Horas de sueño en fase REM') + 
  theme(plot.title=element_text(family='Anton', size=20),
        plot.subtitle=element_text(family='Anton'),
        axis.title.x = element_text(family='Anton', face='bold', hjust=1),
        axis.title.y = element_text(family='Anton', face='bold', hjust=1),
        strip.text=element_text(family='Anton', face='bold', size=14, hjust=0, color='white'),
        strip.background=element_rect(fill='black')) +
  facet_wrap('vore') +
  theme() -> p
p

A continuación, asignamos los elementos de estilo de texto que deseamos modificar con la función element_text().

p + theme(legend.title=element_text(family='Anton', face='bold', size=14, color='black', hjust=0.5))

Recordamos, que para utilizar fuentes de Google, basta con cargar la librería showtext y añadir la fuente indicando el nombre de la misma: font_add_google('Anton').

Cómo añadir un salto de línea en el título de la leyenda

El salto de línea de la leyenda debe añadirse directamente sobre el nombre del título de la misma. Es decir, a través de la función labs().

p + 
  theme(legend.title=element_text(family='Anton', face='bold', size=14, color='black')) +
  labs(color='Género de \nlos mamíferos')

En resumen…

  • Utilizamos theme(legend.title=element_text(...)) para modificar el estilo del texto del título de la leyenda
  • labs(color='...\n...') para el salto de línea
Paula L. Casado
Paula L. Casado
Data Scientist

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

Relacionado