【发布时间】:2024-04-25 05:55:02
【问题描述】:
我有从 01:30:00(01:30 AM)开始的 12 小时的时间序列数据。
我想要 2 小时的主要休息时间和 1 小时的次要休息时间。
我使用 ggplot2 和 scale_x_datetime 来设置中断和 date_minor_breaks
默认情况下,我会有以下主要休息时间:03AM、05AM、07AM、09AM、11AM。
我更喜欢这些重要的休息时间:凌晨 2 点、凌晨 4 点、早上 6 点、早上 8 点、早上 10 点
似乎可以手动设置中断向量,但我不确定如何为日期时间数据类型执行此操作。
我还以为我可以通过指定第一个主要刻度线(第一个中断)来覆盖默认值,然后“中断”可以填写其余部分。
我宁愿避免对中断向量进行硬编码,因为此代码需要可重用(对于具有不同开始时间的数据集)。
#quick sample data set
DF_test <- data.frame(matrix("NA", ncol = 2, nrow = 6))
DF_test$TS <- as.POSIXct(
c("2017/01/01 01:30:00",
"2017/01/01 03:40:00",
"2017/01/01 05:10:00",
"2017/01/01 07:05:00",
"2017/01/01 09:25:00",
"2017/01/01 11:00:00"
),
tz="UTC",origin="1970-01-01",usetz=F)
DF_test$value <- c(50,51,45,50,57,49)
#Create plot
ggplot(DF_test) +
scale_x_datetime(breaks = date_breaks("2 hour"),
date_minor_breaks = "1 hour",
labels = date_format("%I\n%p")) +
geom_line(aes(TS, value))
样本数据图:
如果您有兴趣 - 最终目标:
情节有 4 小时的主要休息时间
【问题讨论】:
标签: r datetime ggplot2 axis-labels posixct