當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。