Nel libro ggplot2 di Hadley Wickham nel capitolo 10.3, si allude a fare le funzioni di stampa. Voglio fare molti grafici simili che usano la sfaccettatura, ma non posso riferirmi a una colonna. Se tutte le mie referenze sono estetiche, allora posso usare aes_string e tutto funziona. Facet_wrap sembra non avere un analogo.Creazione delle funzioni di stampa con ggplot e aes_string
library(ggplot2)
data(iris)
Questa è la trama che voglio funzionalizzare.
pl.flower1 <- ggplot(data=iris,
aes_string(x='Sepal.Length', y='Sepal.Width', color='Petal.Length')) +
geom_point() +facet_wrap(~Species)
Questo funziona se non lo faccio sfaccettatura.
flowerPlot <- function(dat, sl, sw, pl, sp){
ggplot(data=dat, aes_string(x=sl, y=sw, color=pl)) + geom_point()
}
pl.flower2 <- flowerPlot(iris, sl='Sepal.Length', sw='Sepal.Width', pl='Petal.Length')
Cosa dovrebbe "sp" essere due righe sotto? Una formula, una stringa? Forse l'intero approccio è sbagliato.
flowerPlotWrap <- function(dat, sl, sw, pl, sp){
ggplot(data=dat, aes_string(x=sl, y=sw, color=pl)) + geom_point() +facet_wrap(sp)
}
pl.flower3 <- flowerPlotWrap(iris, sl='Sepal.Length', sw='Sepal.Width', pl='Petal.Length', sp= ?????)
Oltre a una risposta, mi piacerebbe puntatore su come qualcuno si avvicina a questo problema?
Per quanto riguarda come risolvere la domanda, probabilmente controllerò prima [StackOverflow] (http://stackoverflow.com/questions/8043247/writing-r-functions-with-optional-arguments). :) – joran
Anche chiesto qui: http://stackoverflow.com/questions/11028353/passing-string-variable-facet-wrap-in-ggplot-using-r –