2013-03-14 7 views
5

Ich möchte meinem ggplot Trendlinien hinzufügen, aber nur für die signifikanten Beziehungen. Jetzt geom_smooth oder stat_smooth fügt Trendlinien für jede Gruppe hinzu, aber ich möchte angeben, welche Gruppen eine Trendlinie erhalten und welche nicht.Regressionslinie ggplot für nur bestimmte Gruppen hinzufügen

Im Folgenden ein Beispiel für meinen Skript:

plot20<-ggplot(data, aes(x=data$Density, y=data$Total.degrees, color=Species, shape=Species)) 
+ geom_point(size=3) 
+ scale_shape_manual(values=shapeset) 
+ scale_colour_manual(values=colorset) 
+ theme(legend.position="none") 
+ geom_smooth(method=lm, se=FALSE) 

Antwort

11

Eine Lösung wäre, innerhalb geom_smooth()subset() Ihrer Daten zu setzen und Wert geben, für die Sie benötigen Trendlinie zu zeichnen.

Als Beispiel verwendete Daten mtcars (als Beispieldaten wurden nicht zur Verfügung gestellt). Mit subset()cyl werden Werte von 4 oder 6 ausgewählt. Insede geom_smooth() auch aes() sollte wiederholt werden.

ggplot(mtcars,aes(wt,mpg,color=factor(cyl)))+geom_point()+ 
    geom_smooth(data=subset(mtcars,cyl==4 | cyl==6), 
       aes(wt,mpg,color=factor(cyl)),method=lm,se=FALSE) 

enter image description here

+0

Vielen Dank! – user2170248