1

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

                  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(时间)轴,并且其填充颜色会根据 diff我的 df 字段上的相应时间戳而变化?

4

1 回答 1

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))

我需要调整色阶,将条形放入不同的图表中,并做更多的装饰安排等。

压力图和颜色编码的差分带

于 2014-09-09T03:04:17.153 回答