Пакет ggplot2
довольно легко обрабатывает даты и время.
Создайте некоторые данные даты и времени:
dates <- as.POSIXct(as.Date("2011/01/01") + sample(0:365, 100, replace=TRUE))
times <- as.POSIXct(runif(100, 0, 24*60*60), origin="2011/01/01")
df <- data.frame(
dates = dates,
times = times
)
Затем получите магию ggplot2
.ggplot
автоматически обрабатывает даты, но для правильного форматирования оси времени используйте scale_y_datetime()
:
library(ggplot2)
library(scales)
ggplot(df, aes(x=dates, y=times)) +
geom_point() +
scale_y_datetime(breaks=date_breaks("4 hour"), labels=date_format("%H:%M")) +
theme(axis.text.x=element_text(angle=90))
Относительно последней части вашего вопросапри группировке по неделям и т. д. Чтобы достичь этого, вам, возможно, придется предварительно суммировать данные в нужные вам группы.Вы можете использовать, возможно, plyr
для этого, а затем передать полученные данные в ggplot
.