2017-02-21 57 views
0

我使用R包,素食主義者從社區數據生成NMDS排序圖,並且想要包括長度與所選重要性相對應的向量(即來自起點的箭頭)種類。我怎樣才能將顯示的箭頭限制在只有那些物種上,比如說,在數據的最高四分位數?我可以計算每個矢量的長度,但不知道如何將打印的箭頭限制爲符合所需標準的箭頭。例如,從數據的一個子集的向量的聯合圖

require(vegan) 

data(dune) mds <- metaMDS(dune) plot(mds$points[,1], mds$point[,2]) arrows(0, 0, mds$species[,1], mds$species[,2], col = "grey50")

# for the length of ea arrow for ea sp:

hyp <- sqrt(mds$species[,1]^2 + mds$species[,2]^2)

謝謝...

+0

(1)您應該在排序圖中始終使用'asp = 1'。如果您使用素食主義者功能併發出'plot(mds,dis =「site」)',這會自動完成,但如果您想使用更多麻煩的代碼,請添加'asp = 1'。 (2)使用'hyp < - sqrt(rowSums(scores(mds,dis =「sp」)^ 2))''更容易。 (3)'metaMDS'結果的純素'plot','text'和'points'函數有一個'select'參數,可以像名字所示那樣使用它。但是,它不能用於箭頭,但我不明白爲什麼你會使用箭頭來獲得物種分數。 –

+0

謝謝Jari。我非常欣賞這些信息,並徵詢並自願提供。至於物種分數的箭頭 - 你是對的:最好是誤導。我試圖讓一個同事知道的信息比我更少。很高興你讓我考慮一下。 –

回答

0

ImportantSpecies行標識哪些點位於最高四分位數。然後,您可以如圖所示使用它來僅繪製這些點。

ImportantSpecies = which(hyp > quantile(hyp, 0.75) 

plot(mds$points[ImportantSpecies,1], mds$point[ImportantSpecies,2]) 
arrows(0, 0, mds$species[ImportantSpecies,1], 
      mds$species[ImportantSpecies,2], col = "grey50")