2012-06-28 70 views
7

我试图在R中绘制阴谋的一部分以强调该区域。与其他示例不同,我不想在一个图下着色一个区域,而是从一个区域开始在图上着色一个区域,直到图的末尾。当我尝试使用rect()或多边形()时,它遮蔽了我想强调的情节。R阴影的阴影部分

例如:

x_mean <- c(1, 2, 3, 4) 
y_mean <- c(1, 1, 1, 1) 

y_max <- c(4, 4, 4, 4) 
y_min <- c(-4, -4, -4, -4) 


x_shade <- c(2, 3, 4) 

y_max_shade <- c(4, 4, 4) 
y_min_shade <- c(-4, -4, -4) 

plot(x=rep(x_mean, 3), y=c(y_mean, y_max, y_min), bty='n', type="n") 
arrows(x0=x_mean, y0=y_min, x1=x_mean, y1=y_max, length=0) 
points(x=x_mean, y=y_mean, pch=16) 

这将绘制4行上的曲线图。如何在第二行到结尾绘制一个灰色框?

+4

R图形使用笔+纸模型,这意味着稍后绘制的对象将绘制在较早的对象的顶部。先尝试用'rect()'绘图,然后绘制你想要的点和线。 – joran

回答

8

只是让你留下的不仅仅是一个评论更多,这里有一个可能的解决方案:

plot(x=rep(x_mean, 3), y=c(y_mean, y_max, y_min), bty='n', type="n") 
rect(2,-4,4,4,col = rgb(0.5,0.5,0.5,1/4)) 
arrows(x0=x_mean, y0=y_min, x1=x_mean, y1=y_max, length=0) 
points(x=x_mean, y=y_mean, pch=16) 

enter image description here

请注意,我还演示了如何使用alpha混合色彩规格(使用rgb)。这对于这类事情也是有用的。尝试将rect行移动到最后,并注意结果仍然正常,因为填充颜色部分透明。

+0

感谢您让我知道使用rgb,这将派上用场。 – Kevin

1

我发现this answer成为R.

的底纹背景部分

非常伟大的一些背景:

panel.first = rect(c(1,7), -1e6, c(3,10), 1e6, col='green', border=NA)

前两个参数c(1,7)是阴影矩形的起始值,以下参数c(3,10)是阴影结束的地方。这会创建一个1-3和7-10的阴影区域。