我正在使用ggplot来显示数据的百分位数.我使用以下代码,
data <- seq(from=0,to=30,length.out=1000) q <- quantile(data) ggplot()+ geom_density(aes(x=data)) + annotate(geom="text", x=q, y=0, label=names(q)) + theme(text = element_text(size=10)) + geom_vline(x=q, linetype = "longdash")
以下是我得到的图表,
我希望为每个细分填充不同的颜色.即一种颜色为0-25%,另一种颜色为25-50%.有可能吗?
垂直线也贯穿整个图形.我想阻止它直到曲线.而不是完全贯穿它.
谁能帮助我做这两件事?
只需复制Sam指向的答案
dt <- data.frame(x=c(1:200),y=rnorm(200)) dens <- density(dt$y) df <- data.frame(x=dens$x, y=dens$y) probs <- c(0, 0.25, 0.5, 0.75, 1) quantiles <- quantile(dt$y, prob=probs) df$quant <- factor(findInterval(df$x,quantiles)) ggplot(df, aes(x,y)) + geom_line() + geom_ribbon(aes(ymin=0, ymax=y, fill=quant)) + scale_x_continuous(breaks=quantiles) + scale_fill_brewer(guide="none")