ggplot:根据日期设置刻面绘图的时间范围

ggplot: set a time range for facets plotting based on date

我只想查看每天早上 7 点到 9 点的时间序列数据集中的趋势(即 Y)。

你知道如何在ggplot中绘制它吗?

ggplot facet 中的每个子图显示每天早上 7 点到早上 9 点的趋势 Y(2010/1/1 到 2010/1/14)。

这是我的数据集:

  DateTime <- seq(as.POSIXct("2010/1/1 00:00"), as.POSIXct("2010/1/15 00:00"), "min")
  Y <- rnorm(n=length(DateTime), mean=100, sd=1)
  df <- data.frame(DateTime, Y)

非常感谢!

require(ggplot2)
df <- dplyr::filter(df, format(DateTime, '%H:%M:%S') < '09:00:00', format(DateTime, '%H:%M:%S') > '07:00:00')

df$Day <- format(df$DateTime, '%d')

plt <- ggplot(df, aes(DateTime, Y)) + geom_line() + facet_wrap(~Day, ncol = 2, scales = 'free_x') +
theme(axis.text.x = element_text(size = rel(0.7)))

print(plt)