R: ggplot2, как добавить несколько слоев на график одновременно, чтобы уменьшить код - PullRequest
3 голосов
/ 12 апреля 2010
library(ggplot2)

Этот код создает красивый сюжет:

qplot(cty, hwy, data = mpg, colour = displ) +
scale_y_log2() + 
labs(x="x axis") + 
labs(y="y axis") +
opts(title = "my title")

Но я хочу настроить переменные, чтобы попытаться уменьшить повторение кода:

log_scale <- scale_y_log2()
xscale <-   labs(x="x axis")
yscale <-   labs(y="y axis") 
title <- opts(title = "my title")
my_scales <- c(log_scale, xscale, yscale, title) 
# make a variable to hold the scale info changes above

Чтобы я мог сделать это и добавить несколько вещей одновременно:

qplot(cty, hwy, data = mpg, colour = displ) + my_scales  
# add these to your plot.   

но я получаю эту ошибку:

Error in object$class : $ operator is invalid for atomic vectors

Я понимаю, что вещи, входящие в my_scales, должны быть слоями / различными типами объектов, но я не вижу, какими они должны быть.

1 Ответ

4 голосов
/ 12 апреля 2010

Использовать список:

my_scales <- list(log_scale, xscale, yscale, title) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...