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

时间:2012-05-10 21:21:11

标签: r ggplot2

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

2 个答案:

答案 0 :(得分:19)

或多或少遵循Brian Diggs suggests above

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

会给你这个, m

答案 1 :(得分:7)

制作一个data.frame,每天有3和6 pm的列覆盖数据。将其用于geom_rect图层(使用Inf-Inf作为y)。将该图层放在数据图层之前(因此它在它们下面)并为填充添加一个alpha,以便可以通过它看到网格。

通过更详细,可重复的问题,可以得到更详细的答案。