R:站点的不同颜色的 PCA 图

R: PCA plot with different colors for Sites

我最近正在尝试分析我的数据并希望使图表更漂亮一些,但我在这方面失败了。

所以我有一个包含 144 个站点和 5 个环境变量的数据集。它基本上是关于岛屿周围的基质成分和鱼类丰度。在这个岛上,北侧和南侧之间的基质成分应该有所不同。现在我正在做一个 pca 并且使用双标图功能它工作得很好,但我想稍微改变一下情节。

我需要一个站点只是点而不是编号的站点,箭头指向不同的变量并且站点根据它们的位置(北侧或南侧)着色。所以我尝试了我能找到的一切。

大多数使用沙丘数据并建议如下内容的示例:

library(vegan)
library(biplot)
data(dune)
mod <- rda(dune, scale = TRUE)
biplot(mod, scaling = 3, type = c("text", "points"))

所以根据这个,我只需要说出文本和点,R 会标记变量并为网站做点。当我这样做时,我得到了错误:

Error in plot.default(x, type = "n", xlim = xlim, ylim = ylim, col = col[1L],  : 
  formal argument "type" matched by multiple actual arguments

不知道如何解决这个问题。

所以我找到的下一个策略是像这样手动绘制一个图:

require("vegan")
data(dune, dune.env)
mod <- rda(dune, scale = TRUE)
scl <- 3 ## scaling == 3
colvec <- c("red2", "green4", "mediumblue")
plot(mod, type = "n", scaling = scl)
with(dune.env, points(mod, display = "sites", col = colvec[Use],
                      scaling = scl, pch = 21, bg = colvec[Use]))
text(mod,display="species", scaling = scl, cex = 0.8, col = "darkcyan")
with(dune.env, legend("bottomright", legend = levels(Use), bty = "n",
                      col = colvec, pch = 21, pt.bg = colvec))

到目前为止这也很好用,我得到了不同的颜色和点,但现在箭头不见了。所以我发现这应该很容易纠正,如果我只是把 "display="bp"" 在文本行中。但这也不起作用。每次我把 "bp" R 说:

Error in match.arg(display) : 
  argument "display" is missing, with no default

所以我现在有点绝望。我查看了这里的所有答案,但我不明白为什么 display="bp"type=c("text","points") 对我不起作用。

如果有人有想法,我将不胜感激。 https://www.dropbox.com/sh/y8xzq0bs6mus727/AADmasrXxUp6JTTHN5Gr9eufa?dl=0 这是我的保管箱文件夹的 link。它包含我的 R 脚本和 csv 文件。名为 environmentalvariables_Kon1 的还包含有关南北侧的数据。

所以是的...如果有人可以帮助我。那将是真棒。我真的不知道该怎么办了。

此致, 南希

您可以使用 arrows() 添加箭头。查看 vegan:::biplot.rda 的代码,了解它在原始函数中的工作原理。

根据你的情节,添加

g <- scores(mod, display = "species")
len <- 1
arrows(0, 0, len * g[, 1],  len * g[, 2], length = 0.05, col = "darkcyan")

您可能需要调整 len 的值以使箭头更长