Select 参数不适用于 cca 对象
Select argument doesn't work on cca objects
我在 vegan 中创建了一个 class cca 的对象,现在我正在尝试整理三联图。但是,我似乎不能使用 select 参数来只显示指定的项目。
我的代码如下所示:
data("varechem")
data("varespec")
ord <- cca(varespec ~ Al+S, varechem)
plot(ord, type = "n")
text(ord, display = "sites", select = c("18", "21"))
我只希望两个指定的站点(18 和 21)出现在图中,但是当我 运行 代码没有任何反应。我什至没有收到错误消息。
我真的卡住了,但我相当确定这段代码是正确的。有人可以帮助我吗?
下面的代码大概给出了你想要达到的结果:
首先,创建一个对象来存储空白的CCA1-CCA2 plot
p1 = plot(ord, type = "n")
查找并保存站点 18 和 21 的坐标
p1$p1$sites[c("18", "21"),]
# CCA1 CCA2
#18 0.3496725 -1.334061
#21 -0.8617759 -1.588855
site18 = p1$sites["18",]
site21 = p1$sites["21",]
用站点 18 和 21 的点覆盖空白的 CCA1-CCA2 图。为不同的点设置不同的颜色可能是个好主意。
points(p1$sites[c("18", "21"),], pch = 19, col = c("blue", "red"))
显示标签可能会提供信息。
text(x = site18[1], y = site18[2] + 0.3, labels = "site 18")
text(x = site21[1], y = site21[2] + 0.3, labels = "site 21")
这是结果图。
我现在想不起来了,但我不认为其意图是让“名称”select 分数的哪些行应该 selected。文档说 select
是一个逻辑向量,或者是要 selected 的分数的索引。索引是指 numeric 索引,而不是行名。
该示例失败,因为 select
还用于对要在 text()
中绘制的值的 labels
字符向量进行子集化,而此 labels
字符向量不是命名。使用字符向量子集化另一个向量需要命名另一个向量。
如果您这样做,您的示例将有效:
data("varechem")
data("varespec")
ord <- cca(varespec ~ Al + S, varechem)
plot(ord, type = "n")
take <- which(rownames(varechem) %in% c("18", "21"))
# or
# take <- rownames(varechem) %in% c("18", "21")
text(ord, display = "sites", select = take)
我会考虑支持您的示例的用例是否简单。
我在 vegan 中创建了一个 class cca 的对象,现在我正在尝试整理三联图。但是,我似乎不能使用 select 参数来只显示指定的项目。 我的代码如下所示:
data("varechem")
data("varespec")
ord <- cca(varespec ~ Al+S, varechem)
plot(ord, type = "n")
text(ord, display = "sites", select = c("18", "21"))
我只希望两个指定的站点(18 和 21)出现在图中,但是当我 运行 代码没有任何反应。我什至没有收到错误消息。
我真的卡住了,但我相当确定这段代码是正确的。有人可以帮助我吗?
下面的代码大概给出了你想要达到的结果:
首先,创建一个对象来存储空白的CCA1-CCA2 plot
p1 = plot(ord, type = "n")
查找并保存站点 18 和 21 的坐标
p1$p1$sites[c("18", "21"),]
# CCA1 CCA2
#18 0.3496725 -1.334061
#21 -0.8617759 -1.588855
site18 = p1$sites["18",]
site21 = p1$sites["21",]
用站点 18 和 21 的点覆盖空白的 CCA1-CCA2 图。为不同的点设置不同的颜色可能是个好主意。
points(p1$sites[c("18", "21"),], pch = 19, col = c("blue", "red"))
显示标签可能会提供信息。
text(x = site18[1], y = site18[2] + 0.3, labels = "site 18")
text(x = site21[1], y = site21[2] + 0.3, labels = "site 21")
这是结果图。
我现在想不起来了,但我不认为其意图是让“名称”select 分数的哪些行应该 selected。文档说 select
是一个逻辑向量,或者是要 selected 的分数的索引。索引是指 numeric 索引,而不是行名。
该示例失败,因为 select
还用于对要在 text()
中绘制的值的 labels
字符向量进行子集化,而此 labels
字符向量不是命名。使用字符向量子集化另一个向量需要命名另一个向量。
如果您这样做,您的示例将有效:
data("varechem")
data("varespec")
ord <- cca(varespec ~ Al + S, varechem)
plot(ord, type = "n")
take <- which(rownames(varechem) %in% c("18", "21"))
# or
# take <- rownames(varechem) %in% c("18", "21")
text(ord, display = "sites", select = take)
我会考虑支持您的示例的用例是否简单。