2013-03-05 15 views
5

Obecnie mój wykres regresji wygląda tak. Zauważ, że linia regresji jest głęboko pochowana.Jak odkryć pochowany regresję w GGPLOT

Czy istnieje sposób, w jaki mogę zmienić mój kod tutaj, aby pokazać go na górze kropek? Wiem, że mogę zwiększyć rozmiar, ale nadal jest pod kropkami.

p <- ggplot(data=my_df, aes(x=x,y=y),) + 
    xlab("x") + 
    ylab("y")+ 
    geom_smooth(method="lm",se=FALSE,color="red",formula=y~x,size=1.5) + 
    geom_point() 
p 

enter image description here

Odpowiedz

12

Wystarczy zmienić kolejność:

p <- ggplot(data=my_df, aes(x=x,y=y),) + 
    xlab("x") + 
    ylab("y")+ 
    geom_point() + 
    geom_smooth(method="lm",se=FALSE,color="red",formula=y~x,size=1.5) 
p 
+0

@RicardoSaporta - Nie rozumiem - ja nie zmieniły kolor, wszystko robiłem jest zamiana kolejności między geom_point() i geom_smooth(), który jest ... tak samo jak odpowiedź, którą dałeś! – alexwhan

+0

Bardzo mi przykro. Tęsknię za słowem "porządek" jako "kolor". Myślę, że to oznacza, że ​​nadszedł czas, żebym się trochę przespał :) –

+0

Znam to uczucie – alexwhan

5

Kwestia nie jest kolor, ale zamówienie z geoms. Jeśli po raz pierwszy zadzwonisz pod numer geom_point() i , wówczasgeom_smooth()ten ostatni będzie na górze poprzedniego.

Działka następujące dla porównania:

Before <- 
    ggplot(data=my_df, aes(x=x,y=y),) + 
    xlab("x") + 
    ylab("y")+ 
    geom_smooth(method="lm",se=FALSE,color="red",formula=y~x,size=1.5) + 
    geom_point() 

After <- 
    ggplot(data=my_df, aes(x=x,y=y),) + 
    xlab("x") + 
    ylab("y")+ 
    geom_point() + 
    geom_smooth(method="lm",se=FALSE,color="red",formula=y~x,size=1.5) 

Line Plotted AFTER Points

Line Plotted BEFORE Points

2

Jak o przezroczystych punkty?

library(ggplot2) 
seed=616 
x1<- sort(runif(rnorm(1000))) 
seed=626 
x2<- rnorm(1000)*0.02+sort(runif(rnorm(1000))) 
my_df<- data.frame(x= x1, y = x2) 
p <- ggplot(data=my_df, aes(x=x,y=y),) + 
    xlab("x") + 
    ylab("y")+ 
    geom_smooth(method="lm",se=FALSE,color="red",formula=y~x,size=1.5)+ 
    geom_point(size = I(2), alpha = I(0.1)) 
p 

Transparent plot points