是否可以使用 abline() 并将垂直线添加到 x 轴包含日期的图中?我尝试了许多可能的日期格式,但无法正常工作。
问问题
15911 次
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 格式存储,当您绘制它们abline
时as.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 回答