7

我在 R 中有一个绘图,X 轴上有日期/时间(POSIXct),Y 轴上有一些数据。
我想在 x 轴上每个日期的下午 3 点到 6 点之间在 x 轴上提供阴影

4

2 回答 2

23

或多或少遵循了Brian Diggs 上面的建议

#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))

会给你这个, 米

于 2012-05-13T23:06:01.303 回答
8

制作一个 data.frame,其中包含每天下午 3 点和 6 点的列,涵盖数据。将其用于geom_rect图层(使用Inf-Inf用于y)。将该层放在您的数据层之前(因此它在它们下方)并给填充一个 alpha 以便可以通过它看到网格。

更详细,可重复的问题可能会提供更详细的答案。

于 2012-05-10T21:53:51.297 回答