我正在尝试根据一个截止点在ggplot中绘制具有不同颜色的密度图。关于如何根据截止条件有条件地对直方图进行着色,以及如何对密度图上的分位数进行着色,存在一些问题。但是,在给定单个截止点的情况下,我没有找到有关如何为密度图着色的任何资源。到目前为止,这是我的代码:
ggplot(dde_test, aes(x = meanABC)) +
geom_vline(aes(xintercept=quantile(dde_test$meanABC)[4]), color="black", linetype="dashed", size=1) +
geom_density(alpha = 0.7, color = "black", fill = "#cb351e") + #, fill = "#405484"
scale_x_continuous(limits = c(3,12), expand = c(0, 0)) +
scale_y_continuous(limits = c(0,0.3), expand = c(0, 0)) +
xlab("") +
ylab("density") +
theme_bw() +
theme(panel.border = element_blank(), panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"))
这将产生以下图:
非常简单,我想将虚线上方的所有内容都涂成红色,并将虚线下方的所有内容涂成蓝色。我尝试将if else语句放入geom_density()的填充部分,但这没有用。任何提示将不胜感激-谢谢!
p.s。我还想在整个情节中保持虚线为黑色;现在,它与红色密度融合在一起,这对于获得指示也非常有用。道歉,如果这些问题是非常基本的!
编辑:我在Shading a kernel density plot between two points.之前见过此问题,但这与未使用geom_density的情况不同。它也在两个点之间着色,而我想在单个点之前和之后着色。