2017-06-06 37 views
1
  ggplotRegression <- function (fit) { 

      require(ggplot2) 

      ggplot(fit$model, aes_string(x = names(fit$model)[2], y = 
      names(fit$model)[1])) + 
      geom_point() + 
      stat_smooth(method = "lm", col = "red") + 
      labs(title = paste("Adj R2 = ",signif(summary(fit)$adj.r.squared, 
       5), 
        "Intercept =",signif(fit$coef[[1]],5), 
        " Slope =",signif(fit$coef[[2]], 5), 
        " P =",signif(summary(fit)$coef[2,4], 5))) 

}如何在ggplot2的同一個圖中添加不同分位數的不同圖例?

   taus <-c(0.05 , 0.25, 0.50 , 0.75, 0.90 , 0.95) 

       m <- ggplotRegression(lm(formula = BMI ~ height_in_m 
        +weight_in_kg+ Highest_Education_level + 
        wealth_index + age_in_year_groups, data = dat_new)) 

      m+geom_quantile(quantiles=taus, lwd=1.5 , col="green4", 
      fill=taus) 

enter image description here

現在我想添加特定的顏色爲每個分位數並添加spcific傳說每個位數。

回答

1

許多ggplot統計讓您使用封閉在..計算,例如用geom_density您可以在aes使用..count..的結果。

隨着geom_quantile可以使用..quantile..

df <- data_frame(x = rnorm(100), y = rnorm(100)) 
ggplot(df, aes(x, y)) + 
    geom_point() + 
    geom_quantile(aes(colour = as.factor(..quantile..))) 

關鍵是要找出這些變量叫什麼。需要計算統計量的Geoms(如geom_quantilegeom_density)具有相關聯的ggproto對象,例如StatQuantileStatDensity,它具有用於計算代碼compute_group的元素。

StatQuantile$compute_group最後的命令是

plyr::ldply(quantiles, quant_pred, data = data, method = method, 
    formula = formula, weight = weight, grid = grid, method.args = method.args) 

這裏的功能,quant_pred - 你可以看到ggplot2:::quant_pred,返回一個列表。此列表的組件,包括quantile,可用於aes

相關問題