如何解决geom_density:为不同的 x 轴值着色密度表面
我应该如何更改代码以获得所需的结果:相当于“0”和“>25”的密度表面被着色为红色。
#simulate zero-inflated data
pi <- 0.3
mu_log <- 2
sigma_log <- 0.8
N <- 1000
y <- (1 - rbinom(N,1,prob = pi)) * rlnorm(N,mu_log,sigma_log)
#plot
ggplot()+
geom_density(aes(y),inherit.aes = FALSE,show.legend = FALSE,size = 1,fill="grey60",color = NA,outline.type = "upper")
从当前代码绘制
想要的结果应该是这样的
解决方法
这里有一些我可以想出的想法:
#simulate zero-inflated data
pi <- 0.3
mu_log <- 2
sigma_log <- 0.8
N <- 1000
y <- (1 - rbinom(N,1,prob = pi)) * rlnorm(N,mu_log,sigma_log)
df = data.frame(y)
gg = ggplot(df,aes(y)) +
geom_density(fill = "grey")
dat = ggplot_build(gg)$data[[1]]
gg + geom_area(data = subset(dat,x > 25),aes(x = x,y = y),fill = "red") +
geom_vline(xintercept = 0,col = "red",size = 2)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。