PCA仅包含一个主要成分

时间:2013-11-25 12:26:32

标签: r plot

我有三个环境变量的环境样带数据。我在R的三个环境变量中执行了PCA。我想在一个主要组件上绘制我的点(我的横断面上的网站)。如果我在R中使用plot()函数,它会生成一个二维双标图。

如何创建我的PCA的一维图?

这就是我所做的:

pca1= princomp(~ X250 + X500 + shear, data=data, scores=TRUE, cor=TRUE)
plot(pca1)

2 个答案:

答案 0 :(得分:6)

  

如何创建我的PCA的一维图?

您可以使用素食主义包中的linestack()功能获取单个PCA轴的图表(其他人已经指出了导致您只获得单个组件的错误情况)。

E.g:

library("vegan")
data(dune)

## fit PCA
pca <- rda(dune, scale = TRUE)

## 1D plot
linestack(scores(pca, choices = 1, display = "species"))
linestack(scores(pca, choices = 1, display = "sites"), side = "left", add = TRUE)

给出了

enter image description here

参数choices选择您想要绘制的维度。在上面的示例中,这是组件1,但可以通过这种方式选择任何组件。

答案 1 :(得分:1)

实际上,vegan::ordiplot()知道prcompprincomp结果,如果只请求一个轴,则会生成linestack图表。这应该有效:

pca1 <- princomp(~ X250 + X500 + shear, data=data, scores=TRUE, cor=TRUE)
ordiplot(pca1, choices = 1)

行和列分数的缩放相对于彼此可能是奇数,但(rda更平等地缩放。)