我正在使用ggplot来显示数据的百分位数。我使用以下代码,
var minutes=totalsec /60;
以下是我得到的图表,
我希望为每个细分填充不同的颜色。即一种颜色为0-25%,另一种颜色为25-50%。有可能吗?
垂直线也贯穿整个图表。我想阻止它直到曲线。而不是完全贯穿它。
任何人都可以帮我做这两件事吗?
答案 0 :(得分:8)
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")