根据数据集中的另一个变量设置背景颜色

Nac*_*cho 2 background r ggplot2

我试图展示春分对我的数据的影响,这是一整年的一系列远程跟踪鸟类。为了做到这一点,我想绘制一年中每一天的纬度,并将春分效果作为背景中的颜色分级。

我的数据看起来像这样:

SO <- data.frame(date = seq(as.Date("2000/1/1"), by = "day", length.out = 365),
                 latitude = cumsum(rnorm(365)),
                 eqx.effect = c(rep(0,60),seq(1,20,1), seq(20,1,-1),rep(0,143),seq(1,20,1), seq(20,1,-1),rep(0,82)),
                 location = c(rep(1,100),rep(2,135), rep(3,130)))     
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经设法用 geom_line 为几只鸟绘制了全年的纬度,并根据它们所在的位置用不同的颜色为线条的不同部分着色。为了更改背景,我已经阅读了在 R使用ggplot2 中使用 geom_rect 的信息,如何使图形的背景在不同区域具有不同颜色?但在那个问题中,这个人只需要一堆矩形,而我需要 365。

有谁知道这样做的任何其他方式?如果我能让默认背景在接近春分点的日期更加透明,那也会很有用。

eto*_*tov 5

您没有提供理想情况下的图像,那么像这样的内容如何:

ggplot(data=SO) +
   geom_rect(aes(xmin=date,xmax=date+1,ymin=min(latitude),ymax=max(latitude), 
      fill=eqx.effect)) +
   geom_line(aes(x=date,y=latitude),color="yellow")
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明