Keith Keith - 1 month ago 10
R Question

Making regression line visible with ggplot2

My question is really simple:

I have a data set and I made a scatter plot of points (y on x) and I added a regression line using ggplot2. However, because the points are so densely populated, I cannot see my regression line through the points:

ggplot(wthrmelt, aes(x =value, y = avg_target)) +facet_wrap(~variable, scales = "free") + geom_smooth(method='lm',color="red",formula=y~x)+geom_point()


Is there an option I can set in the geo_smooth() function to overlay the line on top of the points?

Thanks,


  • Keith


BLT BLT
Answer

@Roland is correct, you simply need to reorder your plot. You currently have

ggplot(wthrmelt, aes(x =value, y = avg_target)) +
    facet_wrap(~variable, scales = "free") +
    geom_smooth(method='lm',color="red",formula=y~x) + 
    geom_point()

which is plotting all the points on top of the line. Rearrange it:

ggplot(wthrmelt, aes(x =value, y = avg_target)) +
    facet_wrap(~variable, scales = "free") +
    geom_point() +
    geom_smooth(method='lm',color="red",formula=y~x)

and that should solve the problem, because the regression line will be plotted over the points.