簡體   English   中英

ggplot中每個時間段的日期之間的陰影

[英]shading between dates each time period in ggplot

我有一些每日時間序列,我正在嘗試使用ggplot在 plot 的某些區域進行遮蔽。 我想在每年的七月到八月之間遮陰。 我正在嘗試使用geom_rect ,我可以在兩個日期之間獲得它,而不是在每年的相同日期之間。

數據:

library(dplyr)
library(ggplot2)
library(tidyquant)

data(FANG)
data <- FANG %>% 
  filter(symbol == "FB")


data %>% 
  ggplot(aes(x = date, y = adjusted)) +
  geom_line()

我們可以手動創建一個 dataframe 描述要着色的區域。

library(lubridate)
shade <-
  data %>% 
  transmute(year = year(date)) %>% 
  unique() %>% 
  mutate(
    from = as.Date(paste0(year, "-07-01")),
    to   = as.Date(paste0(year, "-08-31"))
  )
shade
#> # A tibble: 4 x 3
#>    year from       to        
#>   <dbl> <date>     <date>    
#> 1  2013 2013-07-01 2013-08-31
#> 2  2014 2014-07-01 2014-08-31
#> 3  2015 2015-07-01 2015-08-31
#> 4  2016 2016-07-01 2016-08-31

ggplot() +
  geom_rect(data = shade, aes(xmin = from, xmax = to, ymin = -Inf, ymax = Inf)) +
  geom_line(data = data,  aes(x = date, y = adjusted))

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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