如何在ggplot中结合facet_grid/facet_wrap与geom_quantile函数使用?
分面展示分位数回归曲线的需求与现有尝试
已实现的次优方案
我已找到一个次优解决方案,具体代码如下:
data("mtcars") tau <- c(0.25, 0.5, 0.75) cuts <- sapply(tau, function(x) quantile(mtcars[,'mpg'], x, na.rm = T)) quantiles <- sapply(mtcars[,'mpg'], function(x) { quant <- NA if(x < cuts[1]) quant <- 0 for(i in 1:(length(cuts)-1)) { if(x >= cuts[i] & x < cuts[i+1]) { quant <- i } else if (x >= cuts[i+1]){ quant <- i+1 } } quant }) labs <- paste0(tau[1:(length(tau)-1)], '-', tau[1:(length(tau)-1)+1]) labs <- c(paste("<", tau[1]), labs, paste(">=", tau[length(tau)])) quantiles <- factor(quantiles, labels=labs) mtcars$quantile <- quantiles ggplot(data=mtcars, aes(x=disp, y=mpg)) + geom_point() + geom_smooth(method='lm') + facet_wrap(quantiles, nrow = 1)

期望实现的目标
但我真正想实现的是使用ggplot的geom_quantile函数并进行分面展示。目前我已实现按颜色区分分位数,但无法用facet_wrap实现分面,具体代码如下:
ggplot(data=mtcars, aes(x=disp, y=mpg)) + geom_point() + geom_quantile(aes(colour = as.factor(..quantile..)), quantiles=tau)

恳请各位提供帮助,谢谢!
内容的提问来源于stack exchange,提问作者liam
相关产品推荐
相关产品推荐

