我在R中有一个图,X轴上有日期/时间(POSIXct),Y轴上有一些数据 我想在x轴上的每个日期的下午3点到6点之间提供x轴上的阴影
答案 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))
会给你这个,
答案 1 :(得分:7)
制作一个data.frame,每天有3和6 pm的列覆盖数据。将其用于geom_rect
图层(使用Inf
和-Inf
作为y)。将该图层放在数据图层之前(因此它在它们下面)并为填充添加一个alpha,以便可以通过它看到网格。
通过更详细,可重复的问题,可以得到更详细的答案。