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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。