簡體   English   中英

如何將 geom_rect 添加到 geom_line plot

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM