6

是否可以使用 abline() 并将垂直线添加到 x 轴包含日期的图中?我尝试了许多可能的日期格式,但无法正常工作。

4

4 回答 4

12

是的,最简单的方法是提供一个Date对象abline

x <- as.Date("2013-05-27")+0:99
y <- cumsum(rnorm(100))
plot(x,y)
abline(v=as.Date("2013-08-01"))
于 2013-05-27T12:54:02.613 回答
2

时间序列图上的 x 轴(带有 ts 对象的 plot.ts)采用十进制形式。例如,轴上的 2016 年第 2 季度将是 2016.25

有一个包“lubridate”,它有一个函数 (decimal_date()),它将 POSIXct 和 Date 日期转换为 abline() 接受的十进制形式。所以我把我想在图上画一条垂直线的日期放在日期表格中。然后我可以把它放入decimal_date函数并放入abline

install.packages("lubridate")

library(lubridate)

[YOUR PLOT CODE]

date1 <- ymd("2013-08-01")

abline(v=decimal_date(date1))
于 2017-03-11T16:38:37.027 回答
1

添加到詹姆斯的答案中,R 中有不同的日期/时间格式。有时日期以 POSIX 格式存储,当您绘制它们ablineas.Date不起作用。

在这种情况下,您必须使用

abline(v = as.POSIXct("2013-08-01"))
于 2017-02-15T20:32:56.060 回答
0

正如您在上面看到的,在 jrat14 的答案中,它适用于十进制。因此,如果您通知小数,也将起作用,如下所示:

abline(v=2013.581, col="blue", lty=3)

请注意,如您所述,右侧的两个参数是可选的

于 2021-11-06T04:14:56.197 回答