如何突出地块上的时间范围?

uli*_*tko 32 plot r ggplot2

我随着时间的推移采样了一些信号,我使用连续线在R中绘制.另外,我想强调一下情节中的几个具体时间范围.

我目前的方法是绘制具有适当宽度和水平位置的全高度透明矩形,以匹配时间范围.我认为这是一个很好的表现形式,因为它清楚地区分了范围内的点和它之外的点; 但有更好的吗?


问题的第二个实际部分.现在我正在绘制这样的信号:

p <- ggplot(data=gs, mapping=aes(x=frameno, y=value, col=variable)) +
       geom_line()
p
Run Code Online (Sandbox Code Playgroud)

我试图手动绘制alpha混合矩形:

p + geom_rect(aes(xmin=600, xmax=650, ymin=-3, ymax=3),
              colour=alpha("grey20", 0.5), fill.alpha=0.5)
Run Code Online (Sandbox Code Playgroud)

- 到目前为止没有成功.任何提示?

dar*_*zig 51

我认为绘制矩形工作正常,我不知道更好的解决方案,如果简单的垂直线或线是不够的.

而刚刚使用alpha=0.5,而不是fill.alpha=0.5所谓透明度问题也指定inherit.aes = FALSEgeom_rect().例如,根据钻石数据制作图表:

p <- ggplot(diamonds, aes(x=price, y=carat)) +
     geom_line(aes(color=color))

rect <- data.frame(xmin=5000, xmax=10000, ymin=-Inf, ymax=Inf)
p + geom_rect(data=rect, aes(xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax),
              color="grey20",
              alpha=0.5,
              inherit.aes = FALSE)
Run Code Online (Sandbox Code Playgroud)

替代文字

还要注意的是ymin,并ymax可以设置成-InfInf轻松.

  • 使用`...,ymin = -Inf,ymax = Inf`绝对精彩.我一直在努力使用ymin和ymax"足够大"的矩形覆盖整个高度,但是ggplot会将y比例调整为这些值.然后我尝试了ylim,然后使用`coord_cartesian()`等等 - 变得疯狂! (7认同)