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