web-dev-qa-db-fra.com

Titre du tracé central dans ggplot2

Bonjour, ce code simple (et tous mes scripts de ce matin) a commencé à me donner un titre décentré dans ggplot2

Ubuntu version: 16.04

R studio version: Version 0.99.896

R version: 3.3.2

GGPLOT2 version: 2.2.0

J'ai fraîchement installé le ci-dessus ce matin pour essayer de résoudre ce problème ....

dat <- data.frame(
time = factor(c("Lunch","Dinner"), levels=c("Lunch","Dinner")),
total_bill = c(14.89, 17.23)
)

# Add title, narrower bars, fill color, and change axis labels
ggplot(data=dat, aes(x=time, y=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")

enter image description here

206
Christopher John

Depuis la parution de nouvelles de ggplot 2.2.0: "Le titre de l'intrigue principale est maintenant aligné à gauche afin de mieux fonctionner avec un sous-titre" . Voir aussi l'argument plot.title dans ?theme: "aligné à gauche par défaut".

Comme l'a souligné @J_F, vous pouvez ajouter theme(plot.title = element_text(hjust = 0.5)) pour centrer le titre.

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

enter image description here

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

enter image description here

275
Henrik

Comme indiqué dans le réponse de Henrik , les titres sont alignés à gauche par défaut à partir de ggplot 2.2.0. Les titres peuvent être centrés en ajoutant ceci à l'intrigue:

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

Toutefois, si vous créez plusieurs parcelles, il peut être fastidieux d’ajouter cette ligne partout. On pourrait alors aussi changer le comportement par défaut de ggplot avec

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

Une fois que vous avez exécuté cette ligne, tous les graphiques créés ultérieurement utilisent le paramètre de thème plot.title = element_text(hjust = 0.5) comme paramètre par défaut:

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

enter image description here

Pour revenir aux paramètres par défaut de ggplot2, vous pouvez soit redémarrer la session R, soit choisir le thème par défaut avec

theme_set(theme_gray())
114
Stibu