{R grid}:如何创建一半填充颜色的多边形?

时间:2010-07-06 16:33:03

标签: r graphics geometry polygon r-grid

(这个问题可能太难了,也许不值得麻烦解决 - 但是,如果有一个简单的解决方案 - 我很想知道)

假设我创建了一个图像(使用网格包),如下所示:

require(grid)
grid.newpage()
grid.polygon(x=c((0:4)/10, rep(.5, 5), (10:6)/10, rep(.5, 5)),
             y=c(rep(.5, 5), (10:6/10), rep(.5, 5), (0:4)/10),
             id=rep(1:5, 4),
             gp=gpar(fill=1:5))

但是现在,如果我希望某些多边形只是部分填充(假设一个将填充1/3,另一个填充1/2,另一个完全填充颜色),那么看起来就像是部分填充了一杯水。

我想可以在构造多边形时完成,问题是,假设我想要根据我给它的比例来计算新多边形 - 怎么做呢。

我的问题的动机来自想要在徽标图上呈现另一层信息(参见包seqLogo中的函数seqLogo)

感谢。

1 个答案:

答案 0 :(得分:1)

您可以通过绘制两次来部分填充多边形:首先使用轮廓但不填充绘制整个多边形,然后绘制填充。您可以使用简单的矩形示例更轻松地看到这一点。

x <- c(left = 0.25, right = 0.75)
y <- c(bottom = 0.1, mid = 0.6, top = 0.9)

grid.newpage()
grid.polygon(x =  rep(x[c("left", "right", "right", "left")], 2),
             y =  y[rep(c("bottom", "top", "bottom", "mid"), each = 2)],
             id = rep(1:2, each = 4),
             gp = gpar(fill = c(NA, "blue")))