R vegan envfit 标签不随 arrow.mul 移动?

R vegan envfit labels do not move with arrow.mul?

我正在使用 envfit 使用环境向量在 R 中制作 NMDS 排序图,并且我的一些环境变量中缺少值。为了不排除所有变量中包含一个变量中缺失值的所有行(与 na.rm=TRUE 一样),我对每个变量分别设置了 运行 envfit,但现在想绘制结果在同一个情节上。因此,我需要使用 arrow.mul 参数来使箭头的比例相互比较。在这里我 运行 进入我的问题:矢量标签的位置似乎没有听 arrow.mul,标签保持在原来的位置,漂浮在 space.

如果有人能告诉我如何让标签移动到新的箭头点位置,或者建议解决缺失值的方法,那就太好了。我希望我没有漏掉一些明显的东西!

这是一个使用来自素食主义者的沙丘数据的顽固标签的可重现示例:

data(dune)
data(dune.env)
de2<-dune.env[,c(1,2)]
ord<-metaMDS(dune,k=2)
plot(ord)
de2$Moisture<-as.numeric(de2$Moisture) #pretend this is numeric
ev<-envfit(ord,de2,choices=c(1,2))
ordiplot(ord,type="n")
points(ord,pch=16,col=c(1:4)[dune.env$Management])
plot(ev,arrow.mul=1,labels=list(vectors=c("A1","Moisture")),
     col="black",cex=0.9,bg="white")#floating labels
plot(ev,labels=list(vectors=c("A1","Moisture")),
     col="black",cex=0.9,bg="white")#labels are fine with no arrow.mul
plot(ev,arrow.mul=1) #default labels behave the same and float with arrow.mul

(是的,我知道我应该学习使用 ggplot,但现在不想,只是为了这个……)

这确实是 vegan 中的一个错误。我会在 github 内修复它。同时,您可以使用 plot(ev, arrow.mul = 1, rescale = FALSE) 来获得浮动文本。这会给你一个警告,但它是无害的,而且会起作用。同时,我会在 vegan 中解决这个问题。