当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《在ggplot的geom_density()中为每个分位数填充不同的颜色》经验,为你挑选了1个好方法。

我正在使用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%.有可能吗?

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

谁能帮助我做这两件事?



1> Eric Fail..:

只需复制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")

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有