2016-12-17 4 views
1

I haben 2 verschiedene Codezeilen:ggplot2 Hinzufügen Regressionslinie (Logik)

ggplot(mpg,aes(displ,hwy,colour = factor(cyl))) + geom_point() + geom_smooth(method = 'lm') 

ggplot(mpg,aes(displ,hwy)) + geom_point(aes(colour = factor(cyl))) + geom_smooth(method = 'lm') 

Der erste Code erzeugt Regressionslinien 3 für 3 verschiedene Gruppen (Faktorvariable) . Der zweite Code erzeugt nur eine Zeile für den gesamten Datensatz.

Meine Frage ist: Was ist die Logik hinter diesem Unterschied? Ich sehe, dass die Ausgabe von colour = factor(cyl) abhängt, aber können Sie mir in diesem Fall die Logik von ggplo2 erklären?

+1

Nun, würde ich daran denkt, wie der erst man ein globales Ästhetik-Mapping verwendet, die - standardmäßig - von jedem geom geerbt. Der zweite verwendet ein lokales Mapping für die Farbästhetik. – lukeA

Antwort

1

Betrachten wir die folgenden 2 Codezeilen, die äquivalent sind (im ersten Fall wir sowohl die geom_point und geom_smooth durch global Bereitstellen der Farbvariable in ggplot und im zweiten Fall lokal mit sowohl geom_point und geom_smooth gruppieren):

ggplot(mpg,aes(displ,hwy,colour = factor(cyl))) + 
geom_point() + 
geom_smooth(method = 'lm') 

ggplot(mpg,aes(displ,hwy)) + 
geom_point(aes(colour = factor(cyl))) + 
geom_smooth(aes(colour = factor(cyl)), method = 'lm') 

enter image description here

nun das andere Beispiel-Code, der Ihnen zur Verfügung gestellten, es färben Sie die Punkte mit unterschiedlichen Farben, indem sie mit Zyl variable Gruppierung aber Sie Gruppe geom_smooth nicht das ist, warum es auf der gesamten dat passt a anstatt auf 3 Gruppen separat wie der frühere Fall zu passen.

ggplot(mpg,aes(displ,hwy)) + 
geom_point(aes(colour = factor(cyl))) + 
geom_smooth(method = 'lm') 

enter image description here

Verwandte Themen