2013-05-27 3 views
4

Можно ли использовать функцию abline() и добавить вертикальную линию к графику, где ось x содержит даты? Я пробовал много вариантов форматирования даты, но не могу заставить его работать.Добавление вертикальной линии к графику временных рядов

+1

Просьба привести воспроизводимый пример. – juba

ответ

9

Да, самый простой способ, чтобы обеспечить Date объект abline: в R.

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

Добавление к ответу Джеймса есть разные date/time formats Иногда даты сохраняются в формате POSIX, и когда вы их сюжет abline с as.Date не работает.

В этом случае вы должны использовать

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

оси Й на временные рядах участке (plot.ts с TS объектом) находится в десятичной форме. Например, 2-й квартал 2016 года на оси будет 2016.25

Существует пакет «lubridate», который имеет функцию (decimal_date()), которая преобразует даты POSIXct и даты в десятичную форму, которые принимаются abline(). Поэтому я беру дату, когда хочу поместить вертикальную линию на сюжет и поместить ее в форму «Дата». Затем я могу поместить это в функцию decimal_date и в abline

install.packages("lubridate") 

library(lubridate) 

[YOUR PLOT CODE] 

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

abline(v=decimal_date(date1)) 
Смежные вопросы