2013-05-24 17 views
6

Mi chiedo se sia possibile creare un set di figure simile in ggplot2 e modificare i dati in qualche modo. Per esempio, posso creare una funzione per eseguire questa operazione:crea modelli usando la sintassi ggplot2?

plot1 <- function(data) ggplot(data) + geom_line(aes(x,y)) + theme_bw() 
plot1(data) 
plot1(newdata) 

ma è possibile salvare e riutilizzare un insieme di componenti in qualche modo come questo? (Ovviamente questo non funziona):

g <- geom_line(aes(x,y)) + theme_bw() 
ggplot(data) + g 
ggplot(newdata) + g 
+0

Si potrebbe mettere come una funzione, 'template = function (d) ggplot (d) + geom_line (AES (x, y)) + theme_bw (), anche se sono d'accordo che sono rimasto deluso quando non sono riuscito a salvare i componenti nel modo in cui ci provi. –

risposta

14

Esistono metodi +.gg descritti here

Questi sono %+% e %+replace% che aggiornerà/sostituire elementi in ggplot s e themes

es

p <- ggplot(mtcars, aes(x =wt, y = mpg,colour = hp)) + geom_point() 

# change the variable mapped to y 
p %+% aes(y = am) 
# change the data set 
p %+% mtcars[1:10,] 

Oppure in grado di combinare gli elementi in una lista

esempio

# 
g <- list(geom_line(aes(x,y)),theme_bw()) 
ggplot(data) + g 
+0

Ho pensato che sarebbe 'p + aes()', '% +%' essendo solo per dati – baptiste

Problemi correlati