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


R polypath 路徑繪製


R語言 polypath 位於 graphics 包(package)。

說明

path 繪製一條路徑,其頂點在 xy 中給出。

用法

polypath(x, y = NULL,
         border = NULL, col = NA, lty = par("lty"),
         rule = "winding", ...)

參數

x, y

包含路徑頂點坐標的向量。

col

填充路徑的顏色。默認值 NA 是不填充路徑。

border

繪製邊框的顏色。默認值 NULL 表示使用 par("fg") 。使用 border = NA 省略邊框。

為了與S兼容,border也可以是邏輯的,在這種情況下,FALSE相當於NA(省略邊框),TRUE相當於NULL(使用前景色),

lty

要使用的線類型,如par 中。

rule

指定路徑填充模式的字符值: "winding""evenodd"

...

graphical parameters 例如 xpdlendljoinlmitre 可以作為參數給出。

細節

坐標可以在繪圖結構(包含 xy 組件的列表)、兩列矩陣等中傳遞。請參閱 xy.coords

假設通過將最後一個點連接到第一個點來閉合路徑。

坐標可能包含缺失值。該行為與 polygon 類似,不同之處在於 NA 值不是將一個多邊形分解為多個多邊形,而是將路徑分解為多個 sub-paths(包括將每個 sub-path 中的最後一個點封閉到第一個點) 。請參閱下麵的示例。

路徑和多邊形之間的區別在於前者可以包含孔(由填充規則解釋);如果路徑邊界分別包圍該區域奇數或非零次數,則它們將填充該區域。

(當前)不支持陰影陰影(如 polygon() 的實現)。

並非所有圖形設備都支持此函數:例如xfigpictex 不支持。

例子

plotPath <- function(x, y, col = "grey", rule = "winding") {
    plot.new()
    plot.window(range(x, na.rm = TRUE), range(y, na.rm = TRUE))
    polypath(x, y, col = col, rule = rule)
    if (!is.na(col))
        mtext(paste("Rule:", rule), side = 1, line = 0)
}

plotRules <- function(x, y, title) {
    plotPath(x, y)
    plotPath(x, y, rule = "evenodd")
    mtext(title, side = 3, line = 0)
    plotPath(x, y, col = NA)
}

op <- par(mfrow = c(5, 3), mar = c(2, 1, 1, 1))

plotRules(c(.1, .1, .9, .9, NA, .2, .2, .8, .8),
          c(.1, .9, .9, .1, NA, .2, .8, .8, .2),
          "Nested rectangles, both clockwise")
plotRules(c(.1, .1, .9, .9, NA, .2, .8, .8, .2),
          c(.1, .9, .9, .1, NA, .2, .2, .8, .8),
          "Nested rectangles, outer clockwise, inner anti-clockwise")
plotRules(c(.1, .1, .4, .4, NA, .6, .9, .9, .6),
          c(.1, .4, .4, .1, NA, .6, .6, .9, .9),
          "Disjoint rectangles")
plotRules(c(.1, .1, .6, .6, NA, .4, .4, .9, .9),
          c(.1, .6, .6, .1, NA, .4, .9, .9, .4),
          "Overlapping rectangles, both clockwise")
plotRules(c(.1, .1, .6, .6, NA, .4, .9, .9, .4),
          c(.1, .6, .6, .1, NA, .4, .4, .9, .9),
          "Overlapping rectangles, one clockwise, other anti-clockwise")

par(op)

參考

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 具有更大的靈活性,linesrectboxpolygon

par 了解如何指定顏色。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Path Drawing。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。