![](/img/trans.png)
[英]How to fill area bellow geom_line plot in ggplot with geom_rect?
[英]How to add geom_rect to geom_line plot
我正在繪制回報的時間序列,並想使用 NBER 衰退約會來掩蓋衰退,就像 FRED 圖一樣。
衰退變量在同一數據框中,是一個 1、0 變量:1 = 衰退,0 = 擴張。
這個想法是使用 geom_rect 和 alpha = (Recession == 1) 來遮蔽 Recession == 1 的區域。
gg_plot 的代碼如下。 謝謝您的幫助!
ERVALUEplot <- ggplot(data = Alldata)+
geom_line(aes(x = Date, y = ERVALUE), color = 'red')+
geom_rect(aes(x = Date, alpha = (Alldata$Recession ==1)), color = 'grey')
我認為使用geom_tile()
而不是geom_rect()
可能會稍微簡化您的案例。 output 是相同的,但參數化更容易。
我假設您的數據具有大致如下的結構:
library(ggplot2)
set.seed(2)
Alldata <- data.frame(
Date = Sys.Date() + 1:10,
ERVALUE = cumsum(rnorm(10)),
Recession = sample(c(0, 1), 10, replace = TRUE)
)
有了這些數據,我們可以在recession == 1
的地方制作灰色矩形,如下所示。 在這里,我將其映射到一個比例以自動生成圖例。
ggplot(Alldata, aes(Date)) +
geom_tile(aes(alpha = Recession, y = 1),
fill = "grey", height = Inf) +
geom_line(aes(y = ERVALUE), colour = "red") +
scale_alpha_continuous(range = c(0, 1), breaks = c(0, 1))
由reprex package (v1.0.0) 創建於 2021-08-25
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.