Se provo a comporre manualmente alcuni elementi di una trama ggplot2
, funziona bene:Come posso combinare più elementi ggplot2 nel ritorno di una funzione?
> p <- ggplot(aes(x = mpg, y = hp), data = mtcars)
> p + geom_vline(xintercept = 20) + geom_point(data = mtcars)
Ma se cerco di riunire alcuni della composizione in una funzione, ottengo un errore:
> myFunction <- function() {
+ return(
+ geom_vline(xintercept = 20) + geom_point(data = mtcars)
+ )
+ }
> p <- ggplot(aes(x = mpg, y = hp), data = mtcars)
> p + myFunction()
Error in geom_vline(xintercept = 20) + geom_point(data = mtcars) :
non-numeric argument to binary operator
Mi manca qualcosa nella notazione ggplot2
per combinare correttamente gli elementi ggplot2
all'interno di un corpo di una funzione?
Penso che l'operatore '+' richiede che uno degli argomenti sia di classe 'ggplot' per poter funzionare correttamente la sua magia. Le geome non sono oggetti 'ggplot' ma la trama' p' è. – Sharpie