Как добавить заголовок в ggplot, если заголовок является именем переменной? - PullRequest
43 голосов
/ 02 марта 2010

В конце ggplot это работает нормально:

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

Но это не так:

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

и не так:

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

Какя могу добавить заголовок к ggplot, если заголовок является именем переменной?

Ответы [ 3 ]

29 голосов
/ 30 декабря 2012

Opts устарела. Одним из вариантов является использование labs ()

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

Почти так же.

24 голосов
/ 02 марта 2010

Как уже отмечали другие, ваш пример работает нормально для случаев, когда переменная chart_title является строкой или выражением. Иногда сложно создать переменную заголовка; например, может возникнуть сбивающий с толку сценарий, если chart_title использует некоторые другие переменные, и если, кроме того, вы используете некоторые греческие символы, так что простого paste(...) недостаточно. Чтобы создать такой заголовок, вы можете использовать что-то вроде следующего:

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)

Еще одна функция, которая пригодится при создании заголовков, - bquote(). Построение программного заголовка может быть грязным делом; R FAQ 7.13 (http://cran.r -project.org / doc / FAQ / R-FAQ.html ) может помочь вам начать работу, но даже этот FAQ в основном говорит вам, что нужно искать R-Help, если есть сомнения.

15 голосов
/ 02 марта 2010

Пожалуйста, предоставьте воспроизводимый пример. Следующее работает отлично для меня:

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

Начиная с версии 0.9.2 opts было заменить на theme:

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

Также см. ?ggtitle.

...