R ggplot:根据日期设置面打印的时间范围

R ggplot:根据日期设置面打印的时间范围,r,ggplot2,facet,R,Ggplot2,Facet,我只想看看每天早上7点到9点时间序列数据集中的趋势(即Y) 你知道如何在ggplot中绘图吗 ggplot方面的每个子图显示了每天早上7点到9点(2010/1/1到2010/1/14)的趋势Y 这是我的数据集: 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) d

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

你知道如何在ggplot中绘图吗

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

这是我的数据集:

  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)
DateTime
require(ggplot2)
df'07:00:00')
df$Day
require(ggplot2)
df'07:00:00')

df$Day是来自
dplyr
过滤器
?是的,很抱歉我没有提到。我认为这只适用于非常一致的数据。我有两天的时间戳,想做一个x轴相同的直方图。这个答案与过滤一样依赖于
scales=“free_x”
(移除它看看会发生什么)。假设数据丢失,但您仍然希望显示07:00-09:00。。。这是行不通的。尝试执行
df是
dplyr
中的
filter
吗?是的,很抱歉我没有提到。我认为这只适用于非常一致的数据。我有两天的时间戳,想做一个x轴相同的直方图。这个答案与过滤一样依赖于
scales=“free_x”
(移除它看看会发生什么)。假设数据丢失,但您仍然希望显示07:00-09:00。。。这是行不通的。尝试执行
df
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)