如果您查看代码plotTangentSpace
(只需在 R 控制台中输入),您首先会找到“参数列表”:
function (A, axis1 = 1, axis2 = 2, warpgrids = TRUE, label = FALSE)
如您所见,您可以将标签“打开”或“关闭”(label = TRUE
或FALSE
),但没有设置标签实际值的参数。seq(1, n)
再往下,您可以在两个地方找到默认的硬编码标签 ( ) 的代码:
if (label == T) {
text(pcdata[, axis1], pcdata[, axis2], seq(1, n),
adj = c(-0.7, -0.7))
...其中pcdata
, axis1
, 和n
在函数的开头定义。
因此,如果要设置标签的值,似乎需要稍微重写函数。一种可能性是在 中添加一个labels
参数arglist
:
function (A, axis1 = 1, axis2 = 2, warpgrids = TRUE, label = FALSE, labels = NULL)
...并更改两个text
调用中的参数:
text(pcdata[, axis1], pcdata[, axis2], labels,
adj = c(-0.7, -0.7))
您还需要访问命名空间tps
中的函数geomorph
。这可以通过geomorph:::
在两个实例之前添加来实现tps
:
geomorph:::tps(ref, shape.min, 20)
geomorph:::tps(ref, shape.max, 20)
然后将更新的函数分配给新的函数名称:
plotTangentSpace2 <- function (A, axis1 = 1, axis2 = 2, warpgrids = TRUE, label = FALSE, labels = NULL){
lots-of-stuff
text(pcdata[, axis1], pcdata[, axis2], labels,
adj = c(-0.7, -0.7)) # in both places
more-stuff
geomorph:::tps(ref, shape.min, 20)
geomorph:::tps(ref, shape.max, 20)
}
使用更新后的函数绘图,使用 'Myname' 作为标签:
plotTangentSpace2(Y.gpa$coords, label = TRUE, labels = Myname)