我在素食者中创建了一个班级cca的对象,现在我正在尝试整理triplot。但是,我似乎不能使用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)出现在情节中,但当我运行代码时,不会发生任何事情。我甚至没有得到一个错误的测量。
我真的被困住了,但我相当肯定这段代码是正确的。有人能帮我吗?
发布于 2022-03-06 16:38:40
我现在记不起来了,但我不认为这样做的目的是让“名字”来选择应该选择的分数行。文档中提到select是一个逻辑向量,或者是要选择的分数的指数。所谓索引,是指数字索引,而不是行名。
该示例失败,因为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)我将考虑一下,支持您的示例的用例是否简单。
发布于 2022-03-04 15:30:41
下面的代码可能给出了您想要达到的结果:
首先,创建一个对象来存储空白的CCA1-CCA2绘图。
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",]将空白的CCA1-CCA2图与18和21号站点的点叠加起来.将不同的颜色设置到不同的点可能是个好主意。
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")这是最终的阴谋。

https://stackoverflow.com/questions/71352817
复制相似问题