我在 R 中有一个绘图,X 轴上有日期/时间(POSIXct),Y 轴上有一些数据。
我想在 x 轴上每个日期的下午 3 点到 6 点之间在 x 轴上提供阴影
问问题
9806 次
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 回答