0

我在使用 R 中的函数多边形对某些区域进行着色时遇到了一个问题。如果这些区域具有公共部分,则最后一个阴影区域将覆盖前一个区域。但现在,我确实想看到这种现象,并想保持原来的界限。我应该怎么办?以下图为例:

绘制此图像的代码是:

plot(variance_five[51:60,2],type="n",ylim=c(0,0.1))
for(i in 1:6)
{
   polygon(c(1:10,10:1),c(variance_five[(10*i-9):(10*i),1],variance_five[(10*i):    (10*i-9),3]),lty=2,col=i)
   lines(variance_five[(10*i-9):(10*i),2])
}

我们可以看到最后一个阴影区域(紫色)覆盖了一些蓝色和浅蓝色部分,我该怎么做才能保留所有区域的所有边界并且公共区域的颜色是这些颜色的总和效果?谢谢!

4

1 回答 1

1

你想使用透明度。alpha包中的功能scales将为任何颜色添加透明度。我建议在循环之前设置一个颜色矢量并使它们透明,例如

my_colors <- rainbow(6)
require(scales)
my_colors <- alpha(my_colors, alpha = 0.5)

然后在循环内替换col = icol = my_colors[i]. 当然,您可以根据需要调整 Alpha 级别(0 完全透明,1 完全不透明)。scales 包还提供了一个show_col我发现在挑选颜色时很有用的功能。尝试

show_col(rainbow(6))
show_col(heat.colors(6))
show_col(cm.colors(6))

我应该注意到rainbow等。作为alpha一个参数,所以你不需要alphaalpha 函数,但如果你有收藏夹,使用可以在其他 R 颜色上工作的函数更通用。(我个人喜欢dodgerblue2and firebrick4。)

于 2013-04-12T15:56:59.083 回答