在时间序列图中添加垂直线

时间:2013-05-27 12:44:03

标签: r

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

3 个答案:

答案 0 :(得分:10)

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

x <- as.Date("2013-05-27")+0:99
y <- cumsum(rnorm(100))
plot(x,y)
abline(v=as.Date("2013-08-01"))

答案 1 :(得分:2)

时间序列图上的x轴(带有ts对象的plot.ts)是十进制形式。例如2016年第2季度,2016年将是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))

答案 2 :(得分:1)

添加到James的答案中,R中有不同的date/time formats。有时日期以POSIX格式存储,当您使用abline绘制as.Date时,日期不起作用。

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

abline(v = as.POSIXct("2013-08-01"))