R 在x轴上的日期之间提供阴影

R 在x轴上的日期之间提供阴影,r,ggplot2,R,Ggplot2,我在R中有一个绘图,X轴上有日期/时间(POSIXct),Y轴上有一些数据。 我想在x轴上提供阴影,比如在x轴上每个日期的下午3点到下午6点之间,制作一个data.frame,其中包含每天下午3点和6点的列,覆盖数据。将其用于geom rect层(使用Inf和-Inf用于y)。将该层放在数据层之前(因此它位于数据层之下),并给填充一个alpha,以便可以通过它看到网格 更详细的答案可能会有一个更详细、可重复的问题。大致如下所示: #示例数据 种子(666) dat在基本图形中,可能使用?rect

我在R中有一个绘图,X轴上有日期/时间(POSIXct),Y轴上有一些数据。

我想在x轴上提供阴影,比如在x轴上每个日期的下午3点到下午6点之间,制作一个data.frame,其中包含每天下午3点和6点的列,覆盖数据。将其用于
geom rect
层(使用
Inf
-Inf
用于y)。将该层放在数据层之前(因此它位于数据层之下),并给填充一个alpha,以便可以通过它看到网格


更详细的答案可能会有一个更详细、可重复的问题。

大致如下所示:

#示例数据
种子(666)

dat在基本图形中,可能使用
?rect
(也可能使用
par(“usr”)
,以用户单位获取绘图的最小/最大y值——或
grconvertX/grconvertY
)设置一组阴影矩形,然后在其上重新绘制数据。一个可复制的例子就好了。
#sample data
set.seed(666)
dat <- data.frame(x = seq(as.POSIXct('2011-03-27 00:00:00'), 
len= (n=24), by="1 hour"), y = cumsum(rnorm(n)))
#Breaks for background rectangles
rects <- data.frame(xstart = as.POSIXct('2011-03-27 15:00:00'), 
xend = as.POSIXct('2011-03-27 18:00:00'))

library(ggplot2)
ggplot() + 
  geom_rect(data = rects, aes(xmin = xstart, xmax = xend, 
            ymin = -Inf, ymax = Inf), alpha = 0.4) + 
  geom_line(data = dat, aes(x,y))