我正在尝试使用 ggplot 的 geom_area
以不同颜色填充曲线下区域的切片(x 轴)。但不知何故,我无法使区域的侧面垂直。这是一个最小的可重现示例:
library(ggplot2)
x = 1:10
pdat = data.frame(y = log(x), x = x)
ggplot(pdat, aes(x=x, y=y)) +
geom_area(aes(y = ifelse(y > 2 & y < 5, y, 0)),
fill = "red", alpha = 0.5) +
geom_line()
感谢您的建议!
最佳答案
问题是,对于 x = 7,y 值现在为 0,但对于 x = 8,y 值为 2.0794415,因此插入了两者之间的区域。
您可以将 pdat
的子集用于 geom_area
:
ggplot() +
geom_area(data = pdat[pdat$y > 2 & pdat$y < 5,], aes(x = x, y = y),
fill = "red", alpha = 0.5) +
geom_line(data = pdat, aes(x = x, y = y))
关于r - ggplot2 geom_area 边缘不垂直,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43686875/