2010-03-01 8 views
38

Al termine di un ggplot, questo funziona bene:Come aggiungere un titolo a un ggplot quando il titolo è un nome di variabile?

+ opts(title = expression("Chart chart_title...")) 

ma questo non significa:

chart_title = "foo" 
+ opts(title = expression(chart_title)) 

né questo:

chart_title = "foo" 
+ opts(title = chart_title) 

Come posso aggiungere un titolo a un ggplot quando il titolo è un nome di variabile?

+1

Sono confuso, i seguenti lavori bene per me: > meow <- "meow" > qplot (RNorm (100), RNorm (100)) + opta (title = meow) –

+2

'opta' è deprecato. Usa invece 'tema'. –

risposta

19

Come altri hanno sottolineato, il tuo esempio sembra funzionare correttamente per i casi in cui la variabile chart_title è una stringa o un'espressione. A volte è complicato costruire la variabile del titolo; per esempio, potrebbe sorgere uno scenario confuso se chart_title utilizza alcune altre variabili e se in aggiunta si utilizzano alcuni caratteri greci, quindi un semplice paste(...) non è sufficiente. Per costruire un titolo del genere, si potrebbe usare qualcosa come il seguente:

foo <- rnorm(100) 
number <- 1 
chart_title <- substitute(paste("Chart no. ",number,": ",alpha," vs ",beta,sep=""), list(number = number)) 
qplot(foo,foo) + opts(title = chart_title) 

Un'altra funzione che torna utile quando si costruisce titoli è bquote(). La costruzione di titoli programmatici può essere un affare disordinato; R FAQ 7.13 (http://cran.r-project.org/doc/FAQ/R-FAQ.html) può aiutarti a iniziare, ma anche le FAQ in genere ti dicono di cercare R-Help in caso di dubbio.

+0

Strano ... Penso che sia stato un ritorno a capo nascosto alla fine della riga (ho bisogno di cambiare l'editor di testo!) Molte grazie. – John

15

Fornire un esempio riproducibile. I seguenti funziona bene per me:

title <- "My title" 
qplot(mpg, wt, data = mtcars) + opts(title = title) 

A partire dalla versione 0.9.2, è stato optsreplace da theme:

qplot(mpg, wt, data = mtcars) + theme(title = title) 

Inoltre, vedere ?ggtitle.

28

L'opzione è obsoleta. Una possibilità è quella di utilizzare i laboratori()

myTitle <- "My title" 
qplot(mpg, wt, data = mtcars) + labs(title = myTitle) 

Praticamente la stessa.

+0

Qual è la differenza tra + labs (title = myTitle) e + ggtitle (myTitle)? – skan