2017-07-19 55 views
0

我有一个由日期字段(POSIXct),连续数字字段和布尔字段组成的数据框。R [ggplot2]:时间序列布尔型变量的绘图状态

我已经绘制了日期字段上的连续变量作为时间序列。

现在,我想绘制布尔变量的状态,使布尔变量为TRUE的区间将通过半透明矩形突出显示。有没有一种合理的方式在ggplot2中做到这一点?

查看下面的链接图像,例如我想让情节看起来像。

https://i.stack.imgur.com/Lfic5.png

回答

0

最简单的方法是geom_tileheight = Inf说法。如果你想要矩形在x值上开始和停止,而不是以它们为中心,你可以使用类似geom_tile(aes(x+0.5, y, ...))之类的东西。当然,传说和标签可以根据自己的喜好进行修改。

df <- data.frame(y = cumsum(rnorm(30)), 
       x = 1:30, 
       bool = sample(c(T, F), 30, replace = T)) 

    ggplot(df, aes(x, y)) + 
    geom_line() + 
    geom_tile(aes(width = 1, height = Inf, fill = bool), alpha = 0.5) + 
    scale_fill_manual(values = c(NA, "blue")) + 
    theme_minimal() 

enter image description here