xspline
位於 graphics
包(package)。 說明
繪製X-spline,一條相對於控製點繪製的曲線。
用法
xspline(x, y = NULL, shape = 0, open = TRUE, repEnds = TRUE,
draw = TRUE, border = par("fg"), col = NA, ...)
參數
x,y |
包含多邊形頂點坐標的向量。有關替代方案,請參閱 |
shape |
值介於 -1 和 1 之間的數值向量,用於控製樣條線相對於控製點的形狀。 |
open |
指示樣條曲線是開放形狀還是封閉形狀的邏輯值。 |
repEnds |
對於開放X-splines,一個邏輯值,指示是否應複製第一個和最後一個控製點來繪製曲線。因關閉X-splines而被忽略。 |
draw |
邏輯:應該繪製X-spline嗎?如果為 false,則返回一組用於繪製曲線的線段,並且不繪製任何內容。 |
border |
繪製曲線的顏色。使用 |
col |
填充形狀的顏色。默認值 |
... |
graphical parameters 例如 |
細節
X-spline 是相對於控製點繪製的線。對於每個控製點,直線可能穿過(插值)控製點,也可能僅接近(近似)控製點;行為由每個控製點的形狀參數確定。
如果形狀參數大於零,樣條曲線將逼近控製點(當形狀為 1 時,與三次方 B-spline 非常相似)。如果形狀參數小於零,則樣條曲線會對控製點進行插值(並且與形狀為 -1 時的 Catmull-Rom 樣條曲線非常相似)。如果形狀參數為 0,則樣條線在該控製點處形成尖角。
對於開放X-splines,起始和結束控製點的形狀必須為 0(並且非零值會自動轉換為零)。
對於打開的X-splines,默認情況下,在繪製曲線之前複製開始和結束控製點。在每組四個控製點的第二個和第三個之間繪製一條曲線(插值或近似),因此此默認行為可確保生成的曲線從您指定的第一個控製點開始,到最後一個控製點結束。可以通過 repEnds
參數關閉默認行為。
值
如果 draw = TRUE
、 NULL
則為包含元素 x
和 y
的列表,可以將其傳遞給 lines
、 polygon
等。
在這兩種情況下都是不可見的。
注意
二維樣條線需要在各向同性坐標係中創建。使用設備坐標(如果需要,可進行各向異性校正。)
例子
## based on examples in ?grid.xspline
xsplineTest <- function(s, open = TRUE,
x = c(1,1,3,3)/4,
y = c(1,3,3,1)/4, ...) {
plot(c(0,1), c(0,1), type = "n", axes = FALSE, xlab = "", ylab = "")
points(x, y, pch = 19)
xspline(x, y, s, open, ...)
text(x+0.05*c(-1,-1,1,1), y+0.05*c(-1,1,1,-1), s)
}
op <- par(mfrow = c(3,3), mar = rep(0,4), oma = c(0,0,2,0))
xsplineTest(c(0, -1, -1, 0))
xsplineTest(c(0, -1, 0, 0))
xsplineTest(c(0, -1, 1, 0))
xsplineTest(c(0, 0, -1, 0))
xsplineTest(c(0, 0, 0, 0))
xsplineTest(c(0, 0, 1, 0))
xsplineTest(c(0, 1, -1, 0))
xsplineTest(c(0, 1, 0, 0))
xsplineTest(c(0, 1, 1, 0))
title("Open X-splines", outer = TRUE)
par(mfrow = c(3,3), mar = rep(0,4), oma = c(0,0,2,0))
xsplineTest(c(0, -1, -1, 0), FALSE, col = "grey80")
xsplineTest(c(0, -1, 0, 0), FALSE, col = "grey80")
xsplineTest(c(0, -1, 1, 0), FALSE, col = "grey80")
xsplineTest(c(0, 0, -1, 0), FALSE, col = "grey80")
xsplineTest(c(0, 0, 0, 0), FALSE, col = "grey80")
xsplineTest(c(0, 0, 1, 0), FALSE, col = "grey80")
xsplineTest(c(0, 1, -1, 0), FALSE, col = "grey80")
xsplineTest(c(0, 1, 0, 0), FALSE, col = "grey80")
xsplineTest(c(0, 1, 1, 0), FALSE, col = "grey80")
title("Closed X-splines", outer = TRUE)
par(op)
x <- sort(stats::rnorm(5))
y <- sort(stats::rnorm(5))
plot(x, y, pch = 19)
res <- xspline(x, y, 1, draw = FALSE)
lines(res)
## the end points may be very close together,
## so use last few for direction
nr <- length(res$x)
arrows(res$x[1], res$y[1], res$x[4], res$y[4], code = 1, length = 0.1)
arrows(res$x[nr-3], res$y[nr-3], res$x[nr], res$y[nr], code = 2, length = 0.1)
參考
Blanc, C. and Schlick, C. (1995), X-splines : A Spline Model Designed for the End User, in Proceedings of SIGGRAPH 95, pp. 377-386. https://dept-info.labri.fr/~schlick/DOC/sig1.html
也可以看看
polygon
。
par
了解如何指定顏色。
相關用法
- R legend 將圖例添加到繪圖中
- R barplot 條形圖
- R plot.histogram 繪製直方圖
- R points 向繪圖添加點
- R stem 莖葉圖
- R mtext 將文本寫入繪圖的邊距
- R arrows 將箭頭添加到繪圖中
- R contour 顯示輪廓
- R pairs 散點圖矩陣
- R stars 星圖(蜘蛛圖/雷達圖)和線段圖
- R box 在地塊周圍畫一個方框
- R coplot 調節圖
- R smoothScatter 具有平滑密度顏色表示的散點圖
- R mosaicplot 馬賽克圖
- R bxp 從摘要中繪製箱線圖
- R plot.raster 繪製光柵圖像
- R axTicks 計算軸刻度線位置
- R curve 繪製函數圖
- R plot.factor 繪製因子變量
- R sunflowerplot 製作向日葵散點圖
- R plot.table 表對象的繪圖方法
- R units 圖形單位
- R identify 識別散點圖中的點
- R layout 指定複雜的繪圖安排
- R polygon 多邊形繪製
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Draw an X-spline。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。