我正在制作一个 PCA,vegan{}
并且我还想按因素标记我的点(而不是按它们的唯一行标识,这是 的默认值biplot.rda()
)。对于我的 2D PCA,我使用了Gavin Simpson建议的方法。我想问问聪明的 R 社区是否有这种方法的 3D 版本来创建自定义标签的 PCA。这是适用于 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
我已经ordirgl()
在我的一台计算机上完成了这项工作,但是有一些 R 版本/OS 组合不能很好地与 rgl 配合使用(这对许多人来说似乎是一个问题),所以我希望能够两者的情节rgl()
和ordiplot3d()
ordiplot3d(dat.pca, display = "species", scaling = 3)
这会将点绘制到 3D 空间上,而不是 biplot.rda 的向量上(第一个问题——当我使用 rgl 时我也遇到了这个问题——我认为这些点是在普通biplot.rda()
PCA 中绘制的向量的末端)。这对我来说不是很关心,但如果有人知道如何在 ordirgl 中绘制这些向量并标记它们,我想知道。更大的问题是,一旦制作完成,我很难向 ordiplot3d 添加点。理想情况下,这将类似于points()
. 我在几个不同的问题线程中看到了这一点,但如果有一个不需要 rgl 的优雅解决方案会很好。