で PCA を作成してvegan{}
おり、(のデフォルトのように一意の行 ID ではなく) 要因によってポイントにラベルを付けたいと考えていますbiplot.rda()
。私の 2D PCA では、ここで Gavin Simpson が提案した方法を使用しました。カスタム ラベルの付いた PCA を作成するためのこの方法の 3D バージョンがあるかどうか、賢明な R コミュニティに尋ねたいと思います。2D PCA で機能する方法は次のとおりです。
#Relabel a la Gavin Simpson:
site.scr<-scores(dat.pca,display="sites",scaling=2,choices=c(1,2,3))
spp.scr<-scores(dat.pca,display="species",scaling=2,choices=c(1,2,3))
## generate x,y lims
xlims <- range(site.scr[,1], spp.scr[,1])
ylims <- range(site.scr[,2], spp.scr[,2])
## plot what you want, but leave out sites
biplot(dat.pca, display = "species", xlim = xlims, ylim = ylims)
points(site.scr[39:65,2:3],col="green",pch=1) #These sites are in green
points(site.scr[1:38,2:3],col="brown",pch=3) #These sites are in brown
私は自分のコンピューターの 1 つを使用してこれをordirgl()
行いましたが、rgl でうまく動作しない R バージョン/OS の組み合わせがいくつかあるため (これは多くの人にとって問題のようです)、作成できるようにしたいと考えています。と の両方rgl()
のプロットordiplot3d()
ordiplot3d(dat.pca, display = "species", scaling = 3)
これは、biplot.rda のベクトルではなく、3D 空間にポイントをプロットします (最初の問題 - rgl を使用するときにもこの問題が発生します - これらのポイントは、通常のbiplot.rda()
PCA でプロットされるベクトルの端であると思います)。これは私にとってそれほど重要ではありませんが、これらのベクトルを ordirgl で描画してラベルを付ける方法を誰かが知っている場合は、知りたいです. より大きな問題は、作成した ordiplot3d にポイントを追加するのに苦労していることです。理想的には、これは次のようになりますpoints()
。これはいくつかの異なる質問スレッドで見たことがありますが、rgl を必要としないエレガントなソリューションがあればいいのにと思います。