2010-03-01 6 views
38

Am Ende eines ggplot, das funktioniert gut:Wie füge ich einen Titel zu einem ggplot hinzu, wenn der Titel ein Variablenname ist?

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

Aber dies nicht:

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

noch dies:

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

Wie kann ich einen Titel ein hinzufügen ggplot, wenn der Titel ein Variablenname ist?

+1

Ich bin verwirrt, folgende Arbeiten gut für mich: > miau <- "Miau" > qplot (rnorm (100), rnorm (100)) + opts (title = Miau) –

+2

'setzt' ist veraltet. Verwenden Sie stattdessen "Thema". –

Antwort

19

Wie bereits erwähnt, scheint Ihr Beispiel gut zu funktionieren, wenn die Variable chart_title eine Zeichenfolge oder ein Ausdruck ist. Manchmal ist es schwierig, die Titelvariable zu konstruieren; Zum Beispiel könnte ein verwirrendes Szenario entstehen, wenn chart_title einige andere Variablen verwendet, und wenn Sie zusätzlich einige griechische Zeichen verwenden, so reicht ein einfaches paste(...) nicht aus. Um einen Titel wie das zu konstruieren, könnten Sie so etwas wie die folgenden verwenden:

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) 

Eine weitere Funktion, die in praktisch, wenn Titel Konstruktion bquote() ist. Programmatische Titelkonstruktion kann ein schmutziges Geschäft sein; R FAQ 7.13 (http://cran.r-project.org/doc/FAQ/R-FAQ.html) kann Ihnen den Einstieg erleichtern, aber selbst diese FAQ sagt Ihnen grundsätzlich, dass Sie R-Help im Zweifelsfall suchen sollten.

+0

Seltsam ... Ich glaube, es war ein versteckter Wagenrücklauf am Ende der Zeile (Ich muss den Texteditor ändern!) Vielen Dank. – John

15

Bitte geben Sie ein reproduzierbares Beispiel an. Die folgenden Werke für mich in Ordnung:

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

Seit der Version 0.9.2, opts hat replace durch theme:

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

Auch sehen ?ggtitle.

28

Ops wird veraltet. Eine Option ist die Verwendung von Labs()

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

Ziemlich genau so.

+0

Was ist der Unterschied zwischen + labs (title = myTitle) und + ggtitle (myTitle)? – skan