ggplot2: использовать параметры для нескольких графиков - PullRequest
3 голосов
/ 29 сентября 2010

Я хотел бы создать 10 графиков, которые имеют разные данные, но одинаковый оптический вид. В качестве примера я хотел бы изменить цвет линии сетки для каждого графика. Это можно сделать, добавив

+ opts(panel.grid.major = theme_line(colour = "white")

к каждому определению графика. Однако когда я решу изменить цвет фона, скажем, «серый 25», мне придется изменять каждый график отдельно. Это кажется слишком большой работой. ;)

Итак, я подумал о том, чтобы сделать что-то вроде

opt1 <- '+ opts(panel.grid.major = theme_line(colour = "white")'

и затем определите каждый график как

pl_x <- pl_x + opt1
pl_y <- pl_y + opt1
...

Другие опции (поля, шрифты, шкалы и т. Д.) Могут быть добавлены к opt1. Тем не менее, это не работает (сообщение об ошибке при попытке печати pl_x). Кто-нибудь может знать, как выполнить то, что я хотел бы сделать?

Я также играл с theme_set и theme_update, но это не привело к тому, что мои графики перестали работать, пока я не перезапустил R.

1 Ответ

3 голосов
/ 29 сентября 2010

Вам не нужно добавлять знак +.

opt <- opts(panel.grid.major = theme_line(colour = "white"))

pl_x <- pl_x + opt

Хотя это не работает:

opt <- opts(...) + scale_y_continuous(..)

Это делает:

opt <- opts(...)
syc <- scale_y_continuous(...)
pl_x <- pl_x + opt + syc

И благодаря примеру Хэдли это тоже работает:

opt <- list(opts(...),scale_y_continuous(...))

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

...