R图二进制时间序列

时间:2014-01-30 11:04:25

标签: r plot

我有一个数据集,我在时间轴上有二进制值。 例如:

Date, Event

January-29-2014, 1 
January-29-2014, 0 
January-29-2014, 1 
January-29-2014, 1 
January-30-2014, 0 

我想在时间轴(按日期)和颜色上绘制1,0(红色条形= 1,蓝色条形= 0) 我怎样才能做到这一点? 你怎么称呼这个?例如二进制时间线绘图:)

很抱歉,感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

认为这就是你想要的。使用虚假数据:

n = 100
x = seq(n)
y = sample(0:1, n, replace=TRUE)

DF = data.frame(Date=x, Event=y)

ones = rep(1, nrow(DF))

colors = c("blue", "red")
plot(DF$Date, ones, type="h", col=colors[DF$Event +1],
     ylim=c(0,1))

theplot

答案 1 :(得分:0)

不确定你想要什么。您希望白天汇总数据吗?像流行病学曲线一样?

library(lubridate)
library(plyr)
library(ggplot2)

dat = read.table(header=TRUE, text='Date Event

January-29-2014, 1 
January-29-2014, 0 
January-29-2014, 1 
January-29-2014, 1 
January-30-2014, 0 ')

dat$Date = mdy(dat$Date)

agg = ddply(dat, 'Date', summarise, Events = sum(Event))

ggplot(data=agg, aes(x = Date, y = Events)) + geom_bar(stat='identity') + scale_x_datetime(expand=c(1,0))

输出: enter image description here