R 根据数据集中的位置在ggplot中子集特定日期

R 根据数据集中的位置在ggplot中子集特定日期,r,ggplot2,R,Ggplot2,我使用ggplot2绘制了以下绘图。我想知道是否有一种解决方案可以根据geom\u rect中的xmin和xmax值在我的数据集中的位置自动对它们进行子集划分,而不是手动填充日期。我希望始终将xmin作为我的数据集中的第六个最后日期观察,并将xmax作为最后日期观察。类似地,在scale_x_date序列中,我想将其设置为自动提取数据集中的第一个和最后一个日期 ggplot(psce_data, aes(Date,`PSCE Growth`)) + geom_rect(aes(xmin =

我使用
ggplot2
绘制了以下绘图。我想知道是否有一种解决方案可以根据
geom\u rect
中的
xmin
xmax
值在我的数据集中的位置自动对它们进行子集划分,而不是手动填充日期。我希望始终将
xmin
作为我的数据集中的第六个最后日期观察,并将
xmax
作为最后日期观察。类似地,在
scale_x_date
序列中,我想将其设置为自动提取数据集中的第一个和最后一个日期

ggplot(psce_data, aes(Date,`PSCE Growth`)) +
  geom_rect(aes(xmin = tail(date,1),
                xmax = as.Date('2020-12-01'),
                ymin = 0, ymax = 10), 
            fill = "red", alpha = 0.2) +
  geom_line(size = 1.2, col = '#75002B') +
  scale_x_date(breaks = seq(as.Date('2018-01-01'),as.Date('2020-12-01'),by = '6 months'), date_labels = '%b-%Y') +
  labs(y = 'Year-on-Year Growth (%)') +
  scale_y_continuous(breaks = seq(0,10,by = 2)) +
  theme_bw()
这是我的数据集的可复制版本

structure(list(Date = structure(c(17532, 17563, 17591, 17622, 
17652, 17683, 17713, 17744, 17775, 17805, 17836, 17866, 17897, 
17928, 17956, 17987, 18017, 18048, 18078, 18109, 18140, 18170, 
18201, 18231, 18262, 18293, 18322, 18353, 18383, 18414, 18444, 
18475, 18506, 18536, 18567, 18597), class = "Date"), `PSCE Growth` = c(6.03806138152698, 
6.03809149124142, 6.01532602228477, 6.14343685180097, 5.72725741494446, 
5.71673506872114, 5.54860173966314, 6.78058899222803, 6.71018505753344, 
7.18229309747457, 7.35166052339761, 6.88491297221491, 6.39557440155487, 
6.04095268041736, 5.98793033021946, 7.0149065226691, 8.3391362577722, 
7.77825490464967, 7.52521947220078, 6.42564285250243, 6.52665779068081, 
6.42119590515603, 6.0627396381368, 7.17023911171296, 7.25116619687204, 
6.14998629821019, 6.10667340304004, 3.70834197649858, 2.18774730704022, 
2.82551654988927, 3.02881235983089, 2.70973404541919, 2.91094424831471, 
2.51635377656063, 2.85799109044056, 1.94656704508046)), row.names = c(NA, 
-36L), class = c("tbl_df", "tbl", "data.frame"))

您可以使用头(尾(日期6),1):

ggplot(psce_数据,aes(日期,`psce增长`))+
几何校正(aes(xmin=头(尾)(日期6),1),
xmax=尾部(日期,1),
ymin=0,ymax=10),
fill=“red”,alpha=0.2)+
几何尺寸线(尺寸=1.2,柱=75002B)+
比例x日期(分段=序号(表头(psce数据$date,1),
尾部(psce_数据$日期,1),
截止日期='6个月',日期标签='%b-%Y')+
实验室(y=同比增长(%))+
刻度连续(断开=顺序(0,10,乘以=2))+
主题_bw()