当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R polygon 多边形绘制


R语言 polygon 位于 graphics 包(package)。

说明

polygon 绘制其顶点在 xy 中给出的多边形。

用法

polygon(x, y = NULL, density = NULL, angle = 45,
        border = NULL, col = NA, lty = par("lty"),
        ..., fillOddEven = FALSE)

参数

x, y

包含多边形顶点坐标的向量。

density

阴影线的密度,以每英寸行数为单位。 NULL的默认值意味着不绘制阴影线。 density 的零值意味着没有阴影或填充,而负值和 NA 会抑制阴影(因此允许颜色填充)。

angle

阴影线的斜率,以度为单位的角度(逆时针)。

col

填充多边形的颜色。默认值 NA 是不填充多边形,除非指定了 density。 (为了向后兼容, NULL 相当于 NA 。)如果 density 指定为正值,则给出阴影线的颜色。

border

绘制边框的颜色。默认值 NULL 表示使用 par("fg") 。使用 border = NA 省略边框。

为了与S兼容,border也可以是逻辑的,在这种情况下,FALSE相当于NA(省略边框),TRUE相当于NULL(使用前景色),

lty

要使用的线类型,如par 中。

...

图形参数如 xpdlendljoinlmitre 可以作为参数给出。

fillOddEven

逻辑控制多边形着色模式:详细信息见下文。默认FALSE

细节

坐标可以在绘图结构(包含 xy 组件的列表)、两列矩阵等中传递。请参阅 xy.coords

假设通过将最后一个点连接到第一个点来闭合多边形。

坐标可能包含缺失值。其行为与 lines 类似,只不过 NA 值不是将一条线分成多条线,而是将多边形分成几个完整的多边形(包括将最后一个点闭合到第一个点)。请参阅下面的示例。

当生成多个多边形时, densityanglecolborderlty 的值以通常的方式回收。

多边形阴影仅针对线性图实现:如果任一轴采用对数刻度,则忽略阴影,并发出警告。

错误

自相交多边形可以使用“odd-even”或“non-zero”规则进行填充。如果多边形边界分别包围某个区域奇数次或非零次,则它们将填充该区域。阴影线由内部处理R根据fillOddEven参数,但基于设备的实体填充取决于图形设备。这windows,pdfpostscript设备有自己的fillOddEven控制这一点的参数。

例子

x <- c(1:9, 8:1)
y <- c(1, 2*(5:3), 2, -1, 17, 9, 8, 2:9)
op <- par(mfcol = c(3, 1))
for(xpd in c(FALSE, TRUE, NA)) {
  plot(1:10, main = paste("xpd =", xpd))
  box("figure", col = "pink", lwd = 3)
  polygon(x, y, xpd = xpd, col = "orange", lty = 2, lwd = 2, border = "red")
}
par(op)

n <- 100
xx <- c(0:n, n:0)
yy <- c(c(0, cumsum(stats::rnorm(n))), rev(c(0, cumsum(stats::rnorm(n)))))
plot   (xx, yy, type = "n", xlab = "Time", ylab = "Distance")
polygon(xx, yy, col = "gray", border = "red")
title("Distance Between Brownian Motions")

# Multiple polygons from NA values
# and recycling of col, border, and lty
op <- par(mfrow = c(2, 1))
plot(c(1, 9), 1:2, type = "n")
polygon(1:9, c(2,1,2,1,1,2,1,2,1),
        col = c("red", "blue"),
        border = c("green", "yellow"),
        lwd = 3, lty = c("dashed", "solid"))
plot(c(1, 9), 1:2, type = "n")
polygon(1:9, c(2,1,2,1,NA,2,1,2,1),
        col = c("red", "blue"),
        border = c("green", "yellow"),
        lwd = 3, lty = c("dashed", "solid"))
par(op)

# Line-shaded polygons
plot(c(1, 9), 1:2, type = "n")
polygon(1:9, c(2,1,2,1,NA,2,1,2,1),
        density = c(10, 20), angle = c(-45, 45))

作者

The code implementing polygon shading was donated by Kevin Buhr buhr@stat.wisc.edu.

参考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

Murrell, P. (2005) R Graphics. Chapman & Hall/CRC Press.

也可以看看

segments 具有更大的灵活性,linesrectboxabline

par 了解如何指定颜色。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Polygon Drawing。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。