Saltar al contenido

Título del gráfico central en ggplot2

Solución:

De la noticia de lanzamiento de ggplot 2.2.0: “El título de la trama principal ahora está alineado a la izquierda para funcionar mejor con un subtítulo”. Ver también el plot.title argumento en ?theme: “alineado a la izquierda de forma predeterminada”.

Como lo señaló @J_F, puede agregar theme(plot.title = element_text(hjust = 0.5)) para centrar el título.

ggplot() +
  ggtitle("Default in 2.2.0 is left-aligned")

ingrese la descripción de la imagen aquí

ggplot() +
  ggtitle("Use theme(plot.title = element_text(hjust = 0.5)) to center") +
  theme(plot.title = element_text(hjust = 0.5))

ingrese la descripción de la imagen aquí

Como se indica en la respuesta de Henrik, los títulos están alineados a la izquierda de forma predeterminada comenzando con ggplot 2.2.0. Los títulos se pueden centrar agregando esto a la trama:

theme(plot.title = element_text(hjust = 0.5))

Sin embargo, si crea muchos gráficos, puede resultar tedioso agregar esta línea en todas partes. Entonces también se podría cambiar el comportamiento predeterminado de ggplot con

theme_update(plot.title = element_text(hjust = 0.5))

Una vez que haya ejecutado esta línea, todos los gráficos creados posteriormente usarán la configuración del tema plot.title = element_text(hjust = 0.5) por defecto:

theme_update(plot.title = element_text(hjust = 0.5))
ggplot() + ggtitle("Default is now set to centered")

ingrese la descripción de la imagen aquí

Para volver a la configuración predeterminada original de ggplot2, puede reiniciar la sesión de R o elegir el tema predeterminado con

theme_set(theme_gray())

los ggeasy el paquete tiene una función llamada easy_center_title() para hacer precisamente eso. Lo encuentro mucho más atractivo que theme(plot.title = element_text(hjust = 0.5)) y es mucho más fácil de recordar.

ggplot(data = dat, aes(time, total_bill, fill = time)) + 
  geom_bar(colour = "black", fill = "#DD8888", width = .8, stat = "identity") + 
  guides(fill = FALSE) +
  xlab("Time of day") +
  ylab("Total bill") +
  ggtitle("Average bill for 2 people") +
  ggeasy::easy_center_title()

ingrese la descripción de la imagen aquí

Tenga en cuenta que al escribir esta respuesta, deberá instalar la versión de desarrollo de ggeasy de GitHub para usar easy_center_title(). Puedes hacerlo corriendo remotes::install_github("jonocarroll/ggeasy").

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *