ggplot2 geom_area边缘不垂直

时间:2017-04-28 18:38:13

标签: r ggplot2

我尝试使用ggplot' s 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()

enter image description here

感谢您的建议!

1 个答案:

答案 0 :(得分:5)

问题在于,对于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))

enter image description here