使用 ggplot stat_smooth 绘制多项式回归线

zes*_*sla 7 r ggplot2 dplyr

我正在尝试使用 ggplot:stat_smooth 创建具有二次多项式回归线的散点图。以下是代码:

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))
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

Error: Mapping must be created by `aes()` or `aes_()`
Run Code Online (Sandbox Code Playgroud)

多谢。

San*_*Dey 7

这有效(对于 mtcars 数据集):

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))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 也许添加一些解释为什么它有效,就像我上面的评论一样?关键是专门添加“公式”参数名称。 (2认同)