Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

plot polynomial regression line with ggplot stat_smooth

Tags:

r

dplyr

ggplot2

I'm trying to create a scatter plot with second degree polynomial regression line using ggplot:stat_smooth. Here are the codes:

df.car_spec_data <- read.csv(url("http://www.sharpsightlabs.com/
wp- content/uploads/2015/01/auto-snout_car-specifications_COMBINED.txt"))

df.car_spec_data$year <- as.character(df.car_spec_data$year)

df.car_spec_data %>% group_by(year) %>%
summarise(maxspeed=max(top_speed_mph,
na.rm=T)) %>%  ggplot(aes(x=year, y=maxspeed,
group=1))+geom_point(color='red',   alpha=0.3,
size=3)+stat_smooth(method='lm', y~poly(x,2))

I got the following error message:

Error: Mapping must be created by `aes()` or `aes_()`

Thanks a lot.

like image 558
zesla Avatar asked Oct 12 '16 16:10

zesla


1 Answers

This works (for mtcars dataset):

df.car_spec_data <- mtcars
df.car_spec_data %>% group_by(cyl) %>%
  summarise(maxmpg=max(mpg, na.rm=T)) %>%  
    ggplot(aes(x=cyl, y=maxmpg, group=1)) + 
    geom_point(color='red',   alpha=0.3,size=3)+
    stat_smooth(method='lm', formula = y~poly(x,2))

enter image description here

like image 70
Sandipan Dey Avatar answered Sep 19 '22 13:09

Sandipan Dey