ggplot-12个月中的3个月更改背景颜色

时间:2018-08-10 15:53:01

标签: r ggplot2 plot

我似乎找不到解决我问题的方法。我正在绘制一段时间内水的理化特性。为了便于查看,我想更改每个夏天的背景颜色,图表跨度为3年。这是我目前的ggplot代码:

ggplot(aes(x = Date_terrain, y = MSS, color = Num_cours, group = Num_cours), data = data.MSS) + 
  geom_point() + 
  geom_line() + 
  scale_x_date(date_breaks = "6 month", 
               labels=date_format("%d-%m-%Y"),
               limits = as.Date(c('2016-06-01','2018-10-01')))

虽然没有改进,但效果很好,但是我似乎无法弄清楚如何进行更改。我尝试了geom_rect s,但只收到错误消息。

我希望每个6月21日至9月22日这段时间的背景都变灰。

可以让我知道什么功能最适合吗?

非常感谢您。

dput:

structure(list(Date_terrain = structure(c(3L, 5L, 7L, 6L, 11L, 
4L, 7L, 6L, 10L, 4L, 2L, 8L, 10L, 4L, 2L, 6L, 11L, 4L, 2L, 6L, 
11L, 4L, 2L, 6L, 10L, 4L, 2L, 6L, 11L, 4L, 2L, 9L, 10L, 4L, 2L, 
8L, 9L, 9L, 8L, 8L, 1L, 1L, 1L), .Label = c("", "04-06-17", "04-08-16", 
"07-09-16", "09-09-16", "11-07-18", "14-07-17", "18-07-18", "19-07-18", 
"20-07-16", "21-07-16"), class = "factor"), MSS = c(0L, 1L, 9L, 
-6L, 2L, 1L, 9L, -6L, 6L, 2L, 11L, -6L, 6L, 1L, 4L, 8L, 1L, 1L, 
6L, -6L, 1L, 1L, 7L, 8L, 2L, 1L, 5L, -7L, 1L, 3L, 8L, -8L, 1L, 
3L, 12L, -3L, -6L, -7L, -4L, -6L, NA, NA, NA)), row.names = c(NA, 
43L), class = "data.frame")

当前图形:

Current graph

1 个答案:

答案 0 :(得分:0)

尝试代替geom_rect(),尝试:

... + 
annotate("rect",
  xmin=as.Date("2016-06-01"), #adjust date accordingly
  xmax=as.Date("2018-10-01"), #adjust date accordingly
  ymin=-Inf,
  ymax=Inf,
  fill="#FF000033") #set a transparent color so you can see the plot "behind" the rectangle