尝试使用 lubridate() 在 date/time 格式的 Base R 中添加更多轴标记

Trying to add more axis marks in Base R with date/time format using lubridate()

如果这是一个混乱的问题,我深表歉意,但我不知道有什么更好的格式化方法。我试图在图表的 x 轴上显示它,显示数据集中的所有日期。现在,它只是其中的大约一半 - 我将附上我的图表图片。我还想每个日期之间是否有更多的刻度线。我使用 lubridate() 函数来组合我的 date/time 列,所以这不是问题。我想知道是否有一种方法可以操纵轴刻度线,即使这些刻度线不是典型的数值。我将在下面附上我的代码。

PS4T1$newdate <- with(PS4T1, as.POSIXct(paste(date, time), format="%m-%d-%Y %H:%M"))
plot(average ~ newdate, data=PS4T1, type="b", col="blue")

首先,格式化日期 as.POSIXct,这对调用 plot 方法很重要,显然你已经完成了。

dat <- transform(dat, date=as.POSIXct(date))

然后,substrings 的子集,其中时间是例如'00'。下一个没有 x-axis 的绘图并使用 axismtext.

构建自定义轴
st <- substr(dat$date, 12, 13) == '00'

plot(dat, type='b', col='blue', xaxt='n')
axis(1, dat$date[st], labels=F)
mtext(strftime(dat$date[st], '%b %d'), 1, 1, at=dat$date[st])


数据:

set.seed(42)
dat <- data.frame(
  date=as.character(seq.POSIXt(as.POSIXct('2021-06-22'), as.POSIXct('2021-06-29'), 'hour')),
  v=runif(169)
)