我有一个数据帧,由一个日期字段(POSIXct)、一个连续的数值字段和一个布尔字段组成。
我已经将日期字段上的连续变量绘制为时间序列。
现在,我想绘制布尔变量的状态,以便布尔变量为真的间隔将由半透明的矩形突出显示。在ggplot2中有没有一种合理的方法来做到这一点呢?
参见下面的链接图像,查看我想要的绘图外观的示例。
发布于 2017-07-19 01:19:24
最简单的方法是带有height = Inf
参数的geom_tile
。如果你想让矩形在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()
https://stackoverflow.com/questions/45179315
复制