2016-09-12 4 views
0

Ich habe überprüft, was hier auf stat_function ist, und ich kann immer noch nicht funktionieren. Hier min Arbeitscode:R stat_function mit alternativen Datensatz

plotdata <- cbind(as.data.frame(seq(-5, 5, length=10)), as.data.frame(-seq(-5, 5, length=10))) 
colnames(plotdata) <- c('x', 'y') 

xvalues <- as.data.frame(seq(-5, 5, length = 100)) 
colnames(xvalues) <- 'x' 

xey <- function(x) {x} 

#ggplot(plotdata, aes(x, y)) + geom_line() + stat_function(data=xvalues, fun = xey, linetype = 2) 

ggplot(plotdata, aes(x, y)) + geom_line() + stat_function(mapping = aes(x = x), data=xvalues, fun = xey, linetype = 2) 

Der Fehler, den ich bekommen ist:

Error in eval(expr, envir, enclos) : object 'y' not found 

Wie Sie sehen können, habe ich es versucht, sowohl mit Mapping und ohne, und der Fehler ist die gleiche. Die Handlung funktioniert ohne die Funktion stat_function, die Xey-Funktion ist vektorisiert und in x ausgedrückt, und die Spalte xvalues ​​ist mit x bezeichnet, also ????

EDIT - hinzugefügte Namensspalte in xvalues, nicht von meinem Notebook übertragen.

Antwort

0

Dies ist kein stat_function Problem. Sie haben keine Spalte namens y den Datensatz, den Sie in die ggplot-Funktion übergeben. Durch Ändern des data Parameterwerts wird das Problem behoben.

ggplot(plotdata, aes(x, y)) + geom_line() + stat_function(mapping = aes(x = x), data=plotdata, fun = xey, linetype = 2) 
+0

Danke Rilcon! Ah, ein Problem bei der Zusammenstellung eines minimalen Arbeitsbeispiels. Stellen Sie sich vor, dass sich xvalues ​​von den Werten in plotdata unterscheidet. Ich möchte, dass die stat_function auf einem VERSCHIEDENEN Datensatz, der nur aus x-Werten besteht, plot-Daten plottet. Vielen Dank für Ihre Aufmerksamkeit auf meine Frage. – zazizoma

+1

Die Eingaben für 'stat_function' müssen entweder eine Gleichung oder' x, y' Paare sein, es sieht so aus, als würden Sie nur 'x' Werte übergeben. – Rilcon42

+0

Das x = x stammt aus dem Beispiel für stat_plots aus der Dokumentation, das kein y verwendet. Aber ich habe versucht, x = x, y = 0 im Mapping und es hat funktioniert! – zazizoma

Verwandte Themen