我有一个数据框,包含日期字段(POSIXct),连续数字字段和布尔字段。
我已将连续变量绘制在日期字段上作为时间序列。
现在,我想绘制布尔变量的状态,以便布尔变量为TRUE的区间将由半透明矩形突出显示。有没有合理的方法在ggplot2中执行此操作?
请参阅下面的链接图片,例如我想要的情节。
答案 0 :(得分:1)
最简单的方法是geom_tile
带有height = 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()