如何使用ggplot2以时间序列连续绘制二进制数据和连续数据?

时间:2015-02-12 13:53:10

标签: r time ggplot2 time-series binary-data

我有几个数据集分别包含二进制和连续数据。 数据集包括给定观察的日期时间。 datetime列中的时间步长不一样,因此我无法合并数据集。 (到目前为止,我将两个数据集分开,特别是因为每个数据集中的时间步长本身都是不规则的。) 二进制数据的频率低于连续数据

重要提示:我将时间转换为POSIXct格式,以便绕过数据中的不规则时间步长

我想用ggplot2在一个时间序列图中绘制两个数据集。 二进制数据(0和1)应该使用从y = -Inf到y = Inf的矩形表面对连续曲线进行着色。 它有意义吗?

我的问题:我该怎么做?

如何创建图例并控制图的颜色?

到目前为止,我使用geom_step将二进制数据放在一个图中 和另一个情节中的连续数据

我尝试过多色,但它似乎不起作用。 梦想的情况是,以某种方式使用POSIXct时间作为参考,将多个不同数据的图表作为图层叠加在一起!

1 个答案:

答案 0 :(得分:0)

不确定我是否可以提供一些可重复的代码..

这就是我将时间列转换为POSIXct格式的方式:

D$Time <- strptime(D$Time, format="%Y/%m/%d %H:%M:%S")

这是使用geom_step的两个二进制数据集的图:

ggplot() +
  geom_step(data=E, aes(x=Time, y=Set, group=1, col="high window")) +
  geom_step(data=D, aes(x=Time, y=Set, group=1)) +
  scale_x_datetime(limits=c(as.POSIXct('0015-01-07 08:00:00'), as.POSIXct('0015-01-07 10:00:00'))) +
  scale_y_continuous(breaks=seq(0, 1, 1))

我目前正在尝试绘制上面的情节以及连续的第三个数据集,这意味着如果我继续使用geom_step,我需要另一个y轴...