在R中的RDA中添加箭头

时间:2013-10-20 12:49:21

标签: r vegan rda

我对R比较陌生,我试图了解如何在R中进行排序技术,这样我就不需要使用其他软件了。 我试图在物种的位置获得具有环境因素的PCA。 由于我的网站质量不同(就土地使用而言),我希望能够在最终的情节(不同的颜色)中显示出差异。因此,我使用了包加素的la Gavin Simpson方法。到现在为止还挺好。这也是我用于此的代码:

with(fish, status)
scl <- -1 ## scaling = -1
colvec <- c("red2", "mediumblue")
plot(pond.pca, type = "n", scaling = scl)
with(fish, points(pond.pca, display = "sites", col = colvec[status], scaling = scl, pch = 21, bg = colvec[status]))
head(with(fish, colvec[status]))
text(pond.pca, display = "species", scaling = scl, cex = 0.8, col = "darkcyan")
with(fish, legend("topright", legend = levels(status), bty = "n", col = colvec, pch = 21, pt.bg = colvec))

当我试图在圣职任务中为我的环境变量添加箭头时出现问题。如果我使用biplot和其他功能,如ordiplot等,我将无法为我的两种类型的网站保留不同的颜色,因此我不想使用它们。如果我在这里使用命令:

plot(envfit(pond.pca, PondEnv38, scaling=-1), add=TRUE, col="black")

我得到了很好的箭头,只有未对齐(在某些情况下完全相反)的环境变量与之前的代码(第5行)一致。我试图改变缩放,但它们无法对齐。

有谁知道如何处理这个问题?

任何提示都会有用。

1 个答案:

答案 0 :(得分:2)

目前尚不清楚你做错了什么,因为你没有提供问题的可重复的例子,我很难跟踪你对错误的描述。这是一个完全成熟的例子供您遵循,这样做就像您正在尝试做的那样。

data(varespec)
data(varechem)

ord <- rda(varespec)

set.seed(1)
(fit <- envfit(ord, varechem, perm = 999))

## make up a fake `status`
status <- factor(rep(c("Class1","Class2"), times = nrow(varespec) / 2))

> head(status)
[1] Class1 Class2 Class1 Class2 Class1 Class2

现在绘制

layout(matrix(1:2, ncol = 2))
## auto version
plot(fit, add = FALSE)

## manual version with extra things
colvec <-  c("red","green")
scl <- -1
plot(ord, type = "n", scaling = scl)
points(ord, display = "sites", col = colvec[status], pch = (1:2)[status])
points(ord, display = "species", pch = "+")
plot(fit, add = TRUE, col = "black")
layout(1)

哪个给出了

enter image description here

如果您直接绘制envfit对象,所有箭头似乎都指向它们。