【问题标题】:Add arrows in RDA in R在 R 中的 RDA 中添加箭头
【发布时间】:2013-10-28 22:34:13
【问题描述】:

我对 R 比较陌生,我正在努力了解如何在 R 中进行排序技术,这样我就不需要使用其他软件。 我正在尝试用环境因素代替物种的 PCA。 由于我的场地在质量上有所不同(在土地利用方面),我希望能够在最终的地块中显示这种差异(使用不同的颜色)。因此,我使用了带有 vegan 包的 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 行)没有对齐(在某些情况下是完全相反的)。我尝试更改缩放比例,但它们无法对齐。

有人知道如何解决这个问题吗?

任何提示都会很有用。

【问题讨论】:

  • 您可能认为您已经暗示正在使用某个特定的包,但对于没有该领域经验的人来说确实如此。此外,似乎需要数据,因此我建议您构建一个小数据集来说明问题并将其发布或链接到它。
  • 等了两个小时后,由于不清楚,我决定关闭。
  • @DWin 嗯,OP 声明他们正在使用 vegan 并且它已被标记为这样。我想一个明确的require 不会留下任何歧义,但是 2 小时?严重地?不是每个人都在这里闲逛。为时过早。
  • 在您的代码中,您绝不会使用任何环境数据。第 5 行只是显示根据status 着色的站点分数;这和PondEnv38 有什么关系?
  • 抱歉回复晚了,我刚进办公室。我提到我使用了“vegan”包,尽管我不得不承认我并不清楚,因为我没有给出示例数据集。我认为无法正确使用箭头的问题是我使用了太多文件,最后事情变得一团糟。无论如何,感谢 Gavin Simpson 下面给出的示例,我现在解决了这个问题,并承诺在以后的帖子中更加清楚。

标签: r vegan rda


【解决方案1】:

目前尚不清楚您做错了什么,因为您没有提供可重现的问题示例,并且我很难按照您对错误的描述进行操作。这是一个完整的示例供您遵循,它可以完成您似乎正在尝试做的事情。

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)

这给了

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

【讨论】:

  • 非常感谢您的帖子。我修正了我的错误,现在看来,这是相当愚蠢的。
猜你喜欢
  • 1970-01-01
  • 2016-06-22
  • 1970-01-01
  • 1970-01-01
  • 2016-10-30
  • 1970-01-01
  • 2020-11-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多