我正在使用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")
Run Code Online (Sandbox Code Playgroud)
以下是我得到的图表,
我希望为每个细分填充不同的颜色.即一种颜色为0-25%,另一种颜色为25-50%.有可能吗?
垂直线也贯穿整个图形.我想阻止它直到曲线.而不是完全贯穿它.
谁能帮助我做这两件事?
Eri*_*ail 13
只需复制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")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6067 次 |
| 最近记录: |