我想为 1 周时间序列的每个小时绘制图表。X 轴应如下所示:
0 1 2 3 4 ....23 0 1 2 3 4....23 0 1 2 3 ....23 .......... 0 1 2 3 ...23 ---星期一---- ------星期二---- ----星期三----------星期日--- --
我不知道如何为此设置 xlim,因为我需要 1 周内每小时表示的 x 轴。x 轴上共有 168 个点 (24*7=168)。
如果有 168 个点,只需将其设置为xlim=c(0,168)
,抑制轴并单独标记,例如
plot(...,xlim=c(0,168),xaxt="n")
axis(1,at=c(1:168),rep(1:24,7))
那样 x 轴可能有点满,所以也许你只想每 6 小时左右注释一次。然后您以时间点匹配的方式重新编码数据,例如“自开始以来的小时数”左右。
不完全是您要找的东西,但我对同一问题的解决方案是使用 ggplot2... 并按星期几进行过度绘制 - 这向我表明 Sat 和 Sun 是不同的,但一周中的其他日子非常相似在行为上。
# some random data...
adf <- data.frame(day.of.week=rep(c('Mon','Tue','Wed','Thu','Fri','Sat','Sun'), 24),
hour.of.day=rep(1:24, 7), y.to.be.plotted=runif(168))
qplot(hour.of.day, y.to.be.plotted, data=adf, colour=day.of.week, geom='line')
library(ggplot2)
qplot(as.integer(hour.of.day), y.to.be.plotted, data=my.data,
colour=day.of.week, geom='line')