2010-03-01 7 views
38

Al final de un ggplot, esto funciona bien:¿Cómo agregar un título a un ggplot cuando el título es un nombre de variable?

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

pero esto no significa:

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

ni esto:

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

¿Cómo puedo añadir un título a una ggplot cuando el título es un nombre de variable?

+1

estoy confundido, los siguientes funciona muy bien para mí: > maullido <- "maullido" > qplot (rnorm (100), rnorm (100)) + opta (título = maullido) –

+2

'opta' es obsoleto. Use 'tema' en su lugar. –

Respuesta

19

Como han señalado otros, su ejemplo parece funcionar bien para los casos en que la variable chart_title es una cadena o una expresión. A veces es complicado construir la variable del título; por ejemplo, un escenario confuso puede surgir si chart_title usa algunas otras variables, y si además está usando algunos caracteres griegos, entonces un simple paste(...) no es suficiente. Para construir un título como ese, podría utilizar algo como lo siguiente:

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) 

Otra función que es muy útil en la construcción de títulos es bquote(). La construcción programática de títulos puede ser un negocio desordenado; R FAQ 7.13 (http://cran.r-project.org/doc/FAQ/R-FAQ.html) puede ayudarlo a comenzar, pero incluso esa pregunta básica básicamente le dice que busque R-Help en caso de duda.

+0

Extraño ... Creo que fue un retorno de carro oculto al final de la línea (¡tengo que cambiar el editor de texto!) Muchas gracias. – John

15

Proporcione un ejemplo reproducible. Los siguientes me da buenos resultados:

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

Desde la versión 0.9.2, opts se ha replace por theme:

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

También, ver ?ggtitle.

28

Opts está en desuso. Una opción es usar labs()

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

Más o menos lo mismo.

+0

¿Cuál es la diferencia entre + labs (title = myTitle) y + ggtitle (myTitle)? – skan

Cuestiones relacionadas