我有一个时间序列数据框,定期读取压力读数。
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
字段而变化?
答案 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))
我需要调整色阶,将条形图放在不同的图形中,然后再做一些化妆品等等。