我正在使用envfit在环境向量中创建一个NMDS排序图,我在某些环境变量中缺少值。为了不排除一个变量中包含缺失值的所有变量的所有行(与na.rm = TRUE一样),我分别对每个变量运行envfit,但现在想在同一个图上绘制结果。因此,我需要使用arrow.mul参数使箭头的比例相互比较。在这里我遇到了我的问题:矢量标签的位置似乎没有听到arrow.mul,标签保持原来的位置,漂浮在太空中。
如果有人可以告诉我如何让标签移动到新的箭头位置,或者建议找到缺失值的解决方法,那就太棒了。我希望我不会错过一些明显的东西!
以下是使用素食主义者沙丘数据的顽固标签的可重复示例:
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,但不愿意直到现在,只为此......)
答案 0 :(得分:0)
这确实是素食主义者中的错误。我会在github中修复它。同时,您可以使用plot(ev, arrow.mul = 1, rescale = FALSE)
来浮动文本。这会给你一个警告,但它是无害的,并且会起作用。与此同时,我将在素食主义者中解决这个问题。