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

时间:2011-01-19 08:33:31

标签: r ggplot2 plot

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

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


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

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

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

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

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

1 个答案:

答案 0 :(得分:48)

我认为绘制矩形工作正常,如果a simple vertical line or lines不够,我不知道更好的解决方案。

只需使用alpha=0.5代替fill.alpha=0.5来解决透明度问题,并在inherit.aes = FALSE中指定geom_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)

alt text

另请注意,yminymax可以轻松设置为-InfInf