2013-03-14 11 views
5

Desidero aggiungere linee di tendenza al mio ggplot, ma solo per le relazioni significative. Ora geom_smooth o stat_smooth aggiunge le linee di tendenza per ogni gruppo, ma voglio specificare quali gruppi ottengono una linea di tendenza e quali no.Aggiungi Regression Line ggplot solo per determinati gruppi

Di seguito un esempio del mio script:

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) 

risposta

11

Una soluzione sarebbe quella di mettere subset() dei dati all'interno geom_smooth() e dare valore per il quale è necessario tracciare trendline.

Come dati di esempio utilizzati mtcars (non sono stati forniti dati di esempio). Con subset()cyl i valori di 4 o 6 sono selezionati. Insede geom_smooth() anche aes() deve essere ripetuto.

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

La ringrazio molto! – user2170248

Problemi correlati