在ggplot的geom_density()中为每个分位数填充不同的颜色

时间:2015-12-01 20:46:56

标签: r ggplot2

我正在使用ggplot来显示数据的百分位数。我使用以下代码,

var minutes=totalsec /60;

以下是我得到的图表,

enter image description here

我希望为每个细分填充不同的颜色。即一种颜色为0-25%,另一种颜色为25-50%。有可能吗?

垂直线也贯穿整个图表。我想阻止它直到曲线。而不是完全贯穿它。

任何人都可以帮我做这两件事吗?

1 个答案:

答案 0 :(得分:8)

只需复制where Sam is pointing to

的答案

enter image description here

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")