Centrare il titolo della trama in ggplot2

Ciao questo semplice codice (e tutti i miei script di questa mattina) ha iniziato a darmi un titolo fuori centro in ggplot2

Ubuntu version: 16.04

R studio version: Version 0.99.896

R version: 3.3.2

GGPLOT2 version: 2.2.0

Ho appena installato quanto sopra questa mattina per cercare di risolvere il problema....

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")

Soluzione

Dalle notizie sul rilascio di ggplot 2.2.0: "Il titolo principale della trama è ora allineato a sinistra per lavorare meglio con un sottotitolo". Vedi anche l'argomento plot.title in ?theme: "left-aligned by default".

Come indicato da @J_F, si può aggiungere theme(plot.title = element_text(hjust = 0.5)) per centrare il titolo.

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

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

Commentari (2)

Come indicato nella risposta di Henrik, i titoli sono allineati a sinistra per default a partire da ggplot 2.2.0. I titoli possono essere centrati aggiungendo questo alla trama:

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

Tuttavia, se si creano molte trame, può essere noioso aggiungere questa linea ovunque. Si potrebbe anche cambiare il comportamento predefinito di ggplot con

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

Una volta eseguita questa linea, tutte le trame create in seguito useranno l'impostazione tematica plot.title = element_text(hjust = 0.5) come predefinita:

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

Per tornare alle impostazioni predefinite originali di ggplot2 si può riavviare la sessione di R o scegliere il tema predefinito con

theme_set(theme_gray())
Commentari (1)