Ich habe Probleme mit dem Druckverhalten von R, wenn ich eine Funktion erstelle. Ich möchte eine Funktion schreiben, die ein ggplot generiert und dieses Diagramm in der Reihenfolge zurückgibt, um es später zu speichern.Geben Sie die ggplot2-Zahl aus der Quellfunktion zurück
So sollte es in etwa so aussehen
file: func.R
make_plot <- function(data){
p <- ggplot(...)
print(p)
return(p)
}
source('func.R')
p <- make_plot(data)
ggsave('somewhere.png', plot=p)
mein Problem ist, dass die erzeugten Diagramme leer sind, und ruft Druck (p) außerhalb der Funktion erzeugt ein leeres Grundstück auch.
Wenn ich den Code innerhalb der Funktion interaktiv ausführen, ist alles in Ordnung.
Irgendwelche Ideen?
Können Sie die Daten zur Verfügung stellen, die Sie in make_plot verwendet haben? Ist der Aufruf von ggplot in dieser Funktion wirklich nur ggplot (...)? oder ist da mehr dran? – jrlewi
Ich kann das Problem nicht reproduzieren. Wenn ich Ihre "ggplot" -Zeile in der Funktion durch 'p <- ggplot (Daten, aes (x = wt, y = mpg)) + geom_point()' ersetzt habe, dann funktioniert 'p = make_plot (mtcars)' ganz gut. Bitte geben Sie genügend Code ein, um das Problem zu reproduzieren. – Gregor
Arbeiten Sie mit RStudio? Funktioniert der Code innerhalb der Funktion auch nach dem Neustart der R-Sitzung? –