2014-09-08 2 views
1

У меня есть временная шкала данных с показаниями давления, полученными через равные промежутки времени.Шкала временной шкалы с цветом/заполнением на основе значения временного ряда (R ggplot)

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

Как закодировать этот турник, который растянется вдоль оси целых х (время) и чей цвет заливки будет меняются в зависимости от поля diff моего df для соответствующей метки времени?

+0

I просто подумал, что могу использовать 'geom_rect()' для рисования прямоугольников бок о бок на одной горизонтальной линии и установить 'aes ([...] fill = diff)'? Есть ли лучший способ? – Ant

+0

'geom_rect', конечно, как я это сделаю. –

ответ

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

мне было бы нужно отрегулировать цветовую гамму, установите бруски в другой графике, и сделать немного больше косметических arrangmeents и т.д.

Pressure plot and colour-coded differential band