绘制随时间序列的一系列离散事件(一年中的几天)

时间:2017-04-05 12:55:31

标签: r

我希望我能够正确地说出来。

我有一个代表事件发生的日期向量。 它看起来像这样:

days_of_event <- c("2016-08-15", "2016-07-18", "2016-08-17", ...)

向量的类是"Date"

我想制作一个情节,其中x轴代表一年中的几天(从2016-01-012017-01-01),并在事件发生时在情节上添加某种标记。

我能够用

创建X轴的值
days <- seq.Date(lubridate::ymd("2016-1-1"), lubridate::ymd("2017-1-1"), "days")

但我不知道从哪里开始。

我是R的新手并且它仍然非常令人困惑,所以每一个帮助我指向正确方向的人都会受到赞赏。

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

days_of_event <- as.Date(c("2016-08-15", "2016-08-18", "2016-08-17"))

#Create a data.frame marking the dates of events
x <- data.frame(id = days_of_event, val = rep(1,length(days_of_event)))

#Create a data.frame with your time span (just a month in this example)
y <- data.frame(id = seq.Date(as.Date("2016-08-01"),as.Date("2016-09-01"), "days"))

#Join the two Frames and plot the result
plot(merge(y,x,by=c("id"),all.x=TRUE),las=2,col="red",pch=16,cex=1.5,ylab="",yaxt="n",xlab="")

答案 1 :(得分:1)

使用ggplot:

library(ggplot2)

days <- seq.Date(lubridate::ymd("2016-1-1"), lubridate::ymd("2017-1-1"), "days")
#randomly sample on or off, replace with your data
days_df = data.frame( days = days, event = sample(x = 0:1, size = length(days), replace = TRUE))

days_df %>% ggplot() + geom_point(aes(x = days, y = event))