在R中,假设我有一个与数据长度相同的逻辑向量。我想根据逻辑向量更改ggplot的背景颜色。
在下面的示例中,background_change
是逻辑向量。
library(ggplot2)
background_change <- economics$unemploy < 7777
ggplot(economics, aes(date, psavert)) + geom_line()
请注意,这与在stackoverflow上发布的other问题不同,后者会手动更改后台。这对我的申请来说很乏味。
答案 0 :(得分:4)
不是一个完美的解决方案,但适用于给定的示例。
为每个值生成geom_rect
,其颜色由unemploy < 7777
定义,坐标x
为xmin
,xmax
(start = end)。
thresholdUnemploy <- 7777
library(ggplot2)
ggplot(economics, aes(date, psavert)) +
geom_rect(aes(xmin = date, xmax = date,
ymin = -Inf, ymax = Inf,
color = unemploy < thresholdUnemploy),
size = 0.7,
show.legend = FALSE) +
geom_line()
为什么这不完美取决于您可能需要调整geom_rect
大小的x轴点的密度。
答案 1 :(得分:0)