10

我正在尝试在 R 中制作一个图,其中一部分图为灰色以强调该区域。与其他示例不同,我不想为绘图下的区域着色,而是为绘图上的一个区域着色,该区域从一个区域开始一直到图表的末尾。当我尝试使用 rect() 或 polygon() 时,它会掩盖我想要强调的情节。

例如:

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 条线。如何在背景中从第 2 行到绘图末尾绘制一个灰色框?

4

2 回答 2

15

为了让您留下的不仅仅是评论,这里有一个可能的解决方案:

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)

在此处输入图像描述

请注意,我还演示了如何在颜色规范中使用 alpha 混合(使用rgb)。这对这类事情也很有用。尝试将rect线移到末尾,并注意结果看起来还不错,因为填充颜色是部分透明的。

于 2012-06-28T17:51:44.373 回答
1

我发现这个答案非常适合为 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 创建一个阴影区域。

于 2018-03-06T18:15:01.700 回答