ggplot2 geom_area边缘不垂直

Fri*_*der 4 r ggplot2

我正在尝试使用ggplot填充不同颜色的曲线下面积的切片(x轴)geom_area.但我无论如何都无法让这些区域的边缘垂直.这是一个可重复性最小的例子:

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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

谢谢你的建议!

bee*_*oot 5

问题是,对于x = 7,y值现在为0但是对于x = 8,y值是2.0794415,因此中间的区域被内插.

您可以改为使用pdatfor 的子集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))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述