2014-01-30 2 views
4

У меня есть набор данных, где у меня есть двоичное значение на временной шкале. Так, например:R plot binary timeseries

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

Думаете, это то, что вы хотите. Используя поддельные данные:

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

+0

Да это именно то, что я хотел. Только я обнаружил, что у моих данных есть только один заголовок. «2014-01-31 0» - одна запись. Итак, теперь я пытаюсь разбить это на две колонки, поэтому я могу сделать то, что вы предложили. Большое спасибо. – digit

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