基于时间序列'值的颜色/填充的时间轴栏(R ggplot)

时间:2014-09-08 23:30:51

标签: r ggplot2 time-series timeserieschart

我有一个时间序列数据框,定期读取压力读数。

                  time   pressure        diff
1 2014-09-09 09:12:29  1.6191598  0.00000000
2 2014-09-09 09:12:28  3.0137784 -0.07668387
3 2014-09-09 09:12:27  1.1958183  0.58693260
4 2014-09-09 09:12:26  2.2803681  1.07774954
5 2014-09-09 09:12:25 -0.7614310 -0.17864232
6 2014-09-09 09:12:24  0.9914106 -0.70121973

我可以使用ggplot2轻松制作压力线图。但是在这个线图下面,我想要一个水平条,其中填充颜色取决于两个连续样本之间的压差(df字段diff)。
例如,在压差为零的情况下,条纹将是白色的(即,压力在两个连续样本之间没有改变)。当差异正增加时,填充颜色将朝向更深的(例如)红色阴影,而当负值增加时,填充颜色将变为蓝色。

生成样本数据:

 dfTimeSeries <- data.frame(time = Sys.time()-seq(1:10), 
                            pressure = rnorm(10,1), 
                            diff = c(0,diff(dfTimeSeries$pressure)))

情节的第一部分

 ggplot(data = dfTimeSeries)+
     geom_line(aes(x=time, y=pressure))

如何对整个x(时间)轴上的水平条进行编码,其填充颜色会根据相应时间戳的df的diff字段而变化?

1 个答案:

答案 0 :(得分:1)

我最终将geom_rect个对象放在一起,diff的每个值都有一个矩形。这是基本概念:

ggplot(data = dfTimeSeries)+
  geom_line(aes(x=time, y=pressure))+
  geom_rect(aes(xmax=time+.5, xmin=time-.5,ymax=-3,ymin=-2, fill=diff))

我需要调整色阶,将条形图放在不同的图形中,然后再做一些化妆品等等。

Pressure plot and colour-coded differential band