例如,如果我需要在图表中阴影两个区域
x<-rep(1:10)
plot(x,type="h")
作为一个例子,我需要将1到3和7到10的区域阴影化。
我使用了这些命令,但是它省略了图形的线条。
usr <- par('usr')
rect(1, usr[3], 3, usr[4], col='green')
如果我理解正确,你可以使用鲜为人知的panel.first=
参数来实现你想要的效果,具体是在plot.default()
函数中使用:
plot(x,type="h",
panel.first = {
usr <- par('usr')
rect(c(1,7), usr[3], c(3,10), usr[4], col='green', border=NA)
})
或者,为了避免与par('usr')
值的混淆,只需执行以下操作:
plot(x, type="h",
panel.first = rect(c(1,7), -1e6, c(3,10), 1e6, col='green', border=NA))
type='n'
来绘制阴影等,然后再使用 lines
或 points
。这是一个要记住的技巧。我从来没有想过查看 ?plot.default
,因此从未遇到过这个。 - jbaums看到了吗?多边形:
polygon( x = c(1,1,3,3,1), y=c( usr[1], x[1], x[3], usr[1], usr[1]) ,col="red")
> polygon( x = c(1,1,3,3,1), y=c( usr[1], x[1], x[3], usr[1], usr[1]) ,col="red")
> polygon( x = c(7,7,10,10,7), y=c( usr[2], x[7], x[10], usr[1], usr[1]) ,col="red")
help(polygon)
中可以看出:假设多边形通过将最后一个点连接到第一个点来封闭。 - r2evansrect()
函数),问题涉及如何将多边形/矩形图形放在绘图区域的前景并遮挡绘图。 - Ben Bolker
rect(1, usr[3], 3, usr[4], col="#00FF0070")
代替,因为"#00FF00"是绿色的,最后两个数字对应透明度,00表示完全透明,FF表示不透明。 - rawrabline
,只要它停在x
的高度即可。 - Rich Scriven