График временного ряда с временами по оси Y
Предположим, у меня есть время завершения мероприятия.
completion_data <- data.frame(
date=c("2009-05-04", "2010-04-07", "2011-04-02", "2011-05-06",
"2012-06-03", "2012-07-09", "2013-09-03", "2014-02-01"),
time_taken=c("1:53:01", "1:50:01", "1:30:01", "1:29:01",
"1:28:03", "1:20:01", "1:15:11", "1:12:24"))
library(zoo)
library(chron)
completion_data$date <- as.Date(completion_data$date)
completion_data$time_taken <- chron(times.=completion_data$time_taken)
Я хочу создать график временных рядов с датой на оси X и временем, взятым на оси Y.
completion_ts <- zoo(completion_data$time_taken, completion_data$date)
plot(completion_ts, ylab="Time (H:M:S)", xlab="Date", type='o')
Тем не менее, у оси Y нет формата H:M:S, как я хотел. Например, первая точка соответствует времени 1:53:01 (т.е. 1 час 53 минуты 1 секунда), и я надеялся, что ось Y будет использовать этот формат.
- Я хотел бы сделать это, используя базовую графику, т.е. не ggplot2 (если это возможно)
- Одна мысль у меня была использовать
axis
заявление после сюжета, но не уверен, если это возможно для сюжетаtimes
объект (созданныйchron
) напрямую
1 ответ
Решение
Разместите метки на оси Y самостоятельно:
plot(completion_ts, ylab = "Time (H:M:S)", xlab = "Date", type = 'o', yaxt = "n")
tt <- seq(times("00:00:00"), times("23:59:59"), times("00:10:00"))
axis(2, tt, sub(":00$", "", times(tt)))