我正在尝试使用 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()

r - ggplot2 geom_area 边缘不垂直-LMLPHP

感谢您的建议!

最佳答案

问题是,对于 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 边缘不垂直-LMLPHP

关于r - ggplot2 geom_area 边缘不垂直,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43686875/

10-12 17:23