代码之家  ›  专栏  ›  技术社区  ›  tenticon

每组回归线的r-ggplot不起作用

  •  0
  • tenticon  · 技术社区  · 8 年前

    我按照说明进行操作 here to create a scatter plot between a predictor and response per group

    require(data.table)
    需要(ggplot2)
    
    组.nobs<-50
    beta0<-c组(-1,0,1.)
    beta1组<-c(0.8、1.0、1.2)
    
    预测值<-rnorm(n=group.nobs)
    响应<-c(group.beta0[1]+group.beta1[1]*预测器+rnorm(sd=0.1,n=group.nobs)
    group.beta0[2]+group.beta1[2]*预测器+rnorm(sd=0.1,n=group.nobs)
    group.beta0[3]+group.beta1[3]*预测器+rnorm(sd=0.1,n=group.nobs)
    
    
    df<-data.table(group=c(rep(1,group.nobs),rep(2,group.nobs),rep(3,group.nobs)),x=预测器,y=响应)
    
    ggplot(df,aes(x=x,y=y,color=group))。+
    GeoMangPooPoT()+
    几何平滑(方法=lm,SE=假,全范围=真)
    < /代码> 
    
    

    但是只有一条回归线

    我想要每组3条回归线

    谢谢你的帮助在预测器和每组响应之间创建散点图

    require(data.table)
    require(ggplot2)
    
    group.nobs <- 50
    group.beta0 <- c(-1., 0., 1.)
    group.beta1 <- c(0.8, 1.0, 1.2)
    
    predictor <- rnorm(n = group.nobs)
    response <- c(group.beta0[1] + group.beta1[1] * predictor + rnorm(sd = 0.1, n = group.nobs),
                  group.beta0[2] + group.beta1[2] * predictor + rnorm(sd = 0.1, n = group.nobs),
                  group.beta0[3] + group.beta1[3] * predictor + rnorm(sd = 0.1, n = group.nobs))
    
    
    df <- data.table(group=c(rep(1,group.nobs),rep(2,group.nobs),rep(3,group.nobs)), x=predictor, y=response)
    
    ggplot(df, aes(x=x, y=y, color=group)) +
      geom_point() + 
      geom_smooth(method=lm, se=FALSE, fullrange=TRUE)
    

    但是只有一条回归线

    ggplot scatter plot with regression line

    我想要每组3条回归线

    谢谢你的帮助

    1 回复  |  直到 8 年前
        1
  •  1
  •   OzanStats    8 年前

    您只需使用 group 美学:

    ggplot(df, aes(x=x, y=y, color=group, group = group)) +
      geom_point() + 
      geom_smooth(method=lm, se=FALSE, fullrange=TRUE)
    
    推荐文章