尝试使用lubridate()中的日期/时间格式添加基本r的更多轴标记

发布于 2025-01-22 18:25:56 字数 542 浏览 0 评论 0原文

如果这是一个混乱的问题,我深表歉意,但我不知道任何更好的格式化方法。我正在尝试在图形的X轴上获取它,显示了我数据集中所有的日期。目前,其中大约是其中的一半 - 我将附加图形的图片。我也希望每个日期之间都有更多的刻度标记。我使用lubridate()函数将我的日期/时间列组合在一起,因此这不是问题。我想知道,即使这些不是典型的数值值,即使这些轴刻度标记是否有办法。我将在下面附加代码。

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

I apologize if this is a messy question, but I don't know any better way to format it. I'm trying to get it so on the x-axis of my graph, all of the dates I have in my dataset are shown. Right now, it's just about half of them - I'll attach a picture of my graph. I would also like if there were more tick marks between each date. I used the lubridate() function to combine my date/time columns, so that's not an issue. I was wondering if there was a way to manipulate the axis tick marks even though these aren't typical numerical values. I'll attach my code below.

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

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

牵你的手,一向走下去 2025-01-29 18:25:56

首先,格式日期as.posixct,这很重要。

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

然后,在subtr上的子集,其中小时为eg '00'。不带X轴的下一个图,并使用mtext构建自定义轴。

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)
)

First, format date as.POSIXct, this is important for which plot method is called, apparently you already have done that.

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

Then, subset on the substrings where hours are e.g. '00'. Next plot without x-axis and build custom axis using axis and mtext.

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])

enter image description here


Data:

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)
)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文