我使用了ggplot2中的stat_quantile函数来生成对应于第5,第50和第95百分位数的三个分位数回归线。我想遮蔽第5和第95百分位之间的区域(保持第50百分位线)。我知道我可以使用geom_ribbon来设置上限(第95百分位数)和下限(第5百分位数),但是如何使用ggplot2计算这些边界以便我可以在geom_ribbon函数中使用它们?甚至可以做到吗?我对此非常困惑。请帮忙。这是数据的一部分
snps<-c(1.542685,1.576102,1.576102,1.576102,1.576102,1.623212,1.655293,1.649179,1.657021,1.626873,1.749787,1.7524,1.746435,1.780996,1.790124)
distance<-c(0.1,0.1,0.1,0.1,0.1,0.2,0.2,0.2,0.2,0.2,0.7,0.7,0.7,0.7,0.7)
df<-data.frame(snps,distance)
ggplot(df, aes(distance,snps)) + geom_point(alpha=0)+
stat_quantile(mapping = NULL, data = NULL, geom = "quantile", position ="identity",quantiles = c(0.05, 0.5, 0.95), lambda = 100,method="rqss",formula = NULL, na.rm = FALSE,size=1.5) +theme(legend.position="none")
数据产生对应于分位数的三条线。我想做的是遮蔽中间的区域,在两个外边界之间。 还有,有没有办法省略这两个外线,使它们形成类似无敌边界的东西?
答案 0 :(得分:3)
没有数据/可重复的例子很难帮助你。但你可以尝试类似的东西:
ggplot(movies, aes(x = year, y = rating)) +
stat_summary(geom="ribbon", fun.ymin = function(x) quantile(x, 0.05), fun.ymax = function(x) quantile(x, 0.95)) +
stat_summary(geom="line", fun.y=median)
希望它有所帮助,
亚历