This question already has answers here:
Shading a kernel density plot between two points.
(5个答案)
已关闭8年。
我有一些数据
有没有办法添加类似于this的百分位线?
如果进一步,我可以将类似于this的图的段(由百分位线创建)阴影化,那就太好了!
(5个答案)
已关闭8年。
我有一些数据
dt = data.table(x=c(1:200),y=rnorm(200))
,我从使用ggplot2
的密度图开始:plot = ggplot(dt,aes(y)) + geom_density(aes(y=..density..))
有没有办法添加类似于this的百分位线?
如果进一步,我可以将类似于this的图的段(由百分位线创建)阴影化,那就太好了!
最佳答案
这是受this answer启发的可能性:
dt <- data.table(x=c(1:200),y=rnorm(200))
dens <- density(dt$y)
df <- data.frame(x=dens$x, y=dens$y)
probs <- c(0.1, 0.25, 0.5, 0.75, 0.9)
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")
关于r - 在密度图上添加百分位线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14863744/
10-12 23:13