2016-12-16 5 views
2

Diese Frage ist ähnlich wie diese: Use geom_smooth with transformed ylogarithmisch y mit geom_smooth

In der Tat ist es das gleiche, es ist nur, dass die Lösung zur Verfügung gestellt, nicht mehr funktioniert.

Was ich tun möchte, ist eine geom_smooth, die log (y) auf der y-Seite der Formel hat. Wenn direkt im formula Argument getan, gibt es ein seltsames Ergebnis. So werde ich das gleiche Beispiel in der Frage verwendet, verwenden, die ich erwähnt:

#This works: 
myplot <- qplot(speed, dist, data=cars) 
(myplot + geom_smooth(method="lm", formula=y~log(x))) 

#does not work 
(myplot + geom_smooth(method="lm", formula=log(y)~x)) 

#no longer works: 
(myplot + geom_smooth(method = "glm", formula = y~x, 
        family = gaussian(link = 'log'))) 

Was ich bin, nachdem eine Zeile wie folgt aus:

myplot + geom_line(aes(x=speed, y=exp(predict(lm(log(dist)~speed))))) 
+0

sind Sie noch da OP? –

+0

Wenn die integrierten Hilfeseiten mühsam sind, durch zu waten http://docs.gplplot2.org/current/# hat die neuesten Informationen für ggplot2 und es ist fast 100% notwendig, das für alles außer den einfachsten Plots zu treffen, wenn Sie 'upgrade von einer älteren Version in diesen Tagen. viele große, brekaing API-Änderungen. – hrbrmstr

+0

Hallo, also habe ich es überprüft, konnte aber wegen des "Familien" -Ausschlusses nicht die richtige Antwort finden. Aber ich werde den Link hier für zukünftige Referenz speichern! Vielen Dank! –

Antwort

4

Ja, du hast recht, es scheint die notwendige Syntax hat sich ein wenig geändert:

(myplot + geom_smooth(method = "glm", formula = y~x, 
         method.args = list(family = gaussian(link = 'log')))) 

enter image description here

+0

Ja! Ich könnte schwören, dass ich versucht hatte, mit dem method.args-Argument zu verfahren, aber ich konnte es nicht richtig herausfinden. Das funktioniert jetzt. Danke, Mann! –

+0

Ich verwendete method = "lm" anstelle von "glm". Muss darauf achten! –

Verwandte Themen