r中两条线之间的阴影区域

时间:2014-04-28 21:48:53

标签: r plot

例如,如果我需要在阴谋中遮蔽两个区域

x<-rep(1:10)
plot(x,type="h")

我需要以1到3和7到10之间的区域为例,

我使用这个命令,但它省略了绘图线。

usr <- par('usr')
rect(1, usr[3], 3, usr[4], col='green')

2 个答案:

答案 0 :(得分:13)

如果我理解正确,您可以使用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))

enter image description here

答案 1 :(得分:5)

参见?polygon:

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")

我选择关闭多边形,但似乎我记得你可以自动关闭它。

enter image description here