I am using ggplot to show percentiles of the data. I am using the following code,
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")
The following is the graph I am getting,
I am looking to fill different colors for each segment. i.e. for 0-25% one color and 25-50 another color. Is it possible to do that?
Also the vertical lines are running through the entire graph. I want to stop it until the curve alone. Instead of running through it completely.
can anybody help me in doing these both?
Simply copying answer from where Sam is pointing to
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")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With