R - 时间轴,帮助处理数据和绘制输出

时间:2016-01-01 23:02:10

标签: r plot ggplot2 timeline

我正在尝试制作时间轴图,但遇到了一些问题。我的数据框如下所示:

Event   Date
b       1/3/2016
b       1/4/2016
a       1/4/2016
a       1/5/2016

有更多的数据点,但这说明了这一点。我的最终目标是拥有一个数据集,我可以用'Event a:1/4/2016 - 1/5/2016'等绘制所有事件。

但是,当我对数据进行排序并尝试对其进行分类时,我最终会得到如下数据:

Event   Date
b       1/3/2016
a       1/4/2016
b       1/4/2016
a       1/5/2016

所以我的最终绘制数据集出现了'事件b:2016年1月3日','事件a:1/4/2016','事件b:2016年1月4日','事件a:1 / 5/2016'而不是两个事件的2个日期范围。

这有意义吗?基本上我有一个大型数据集,其中包含某些日期的事件,我想通过数据对其进行分类并制作一个时间轴,说明事件a,b,c等是从范围x-y,a-b等发生的,并绘制出来。

感谢您的帮助!

2 个答案:

答案 0 :(得分:4)

你没有提供很多关于你想要的情节类型的信息,但这里有一些东西可以帮助你开始(使用ggplot2)。

dat.df <- read.table(text="
Event Date
b 1/3/2016
a 1/4/2016
b 1/4/2016
a 1/5/2016",
  header = TRUE)
dat.df$Date <- as.Date(dat.df$Date, format="%d/%m/%Y")
ggplot(data=dat.df, aes(x=Date, y=Event, color=Event)) + geom_line()

enter image description here

答案 1 :(得分:1)

您可以尝试使用xts package或其子集Zoo来整理数据。它们特别适合处理时间序列。

他们通过创建xtszoo对象来定义时间序列的数据结构。它们由您的数据作为第一个参数组成,相对日期作为第二个参数组成。

library(zoo)
ts <- zoo(yourdata, yourdates)

完成此步骤后,您可以像任何其他R对象一样轻松地绘制zoo对象。

plot(ts)