首页 > 解决方案 > 整理 NMDS 排序图

问题描述

我有来自采石场和钙质草原地点的繁殖鸟类组合数据,并希望将它们显示在 nmds 排序图中,以及作为向量的环境参数。如何整理物种标签?我正在使用素食包进行协调。

我已经使用ordiselectgoeveg 包中的函数减少了显示的物种数量。标签仍然重叠,但我不想进一步减少物种。

使用该orditkplot功能,我似乎无法获得在美学方面看起来与我想要的一样好的结果。使用该功能时,我也未能仅显示物种的一个子集。

ord.nmds <- metaMDS(species, trace=FALSE)
sel <- ordiselect(species, ord.nmds, ablim = 0.5, method = "axes", freq = TRUE)

ef <- envfit(ord.nmds ~ cgr + L_wdl + str + Hab_Div, env_var, permu=999)

grp <- factor(rep(c("GRASS", "QUARRY"), each = 14))
cols <- c("gray70","gray30")

plot(ord.nmds, type="n", xlim = c(-1.1, 1.1), ylim = c(-0.9,0.9))
points(ord.nmds, display = "sites", pch = 15, col = rep(cols, each = 14), cex=1)
text(ord.nmds, display = "species", col="black", cex=0.55, select = sel)
plot(ef, p.max = 0.05, col ="black", cex = 0.8)
legend(x = 0.6, y = 1.05, legend = tools::toTitleCase(levels(grp)), fill = cols, bty = "n", cex = 0.8)

到目前为止,我的情节是这样的: 排序图

标签: rplotvegan

解决方案


你试过ordipointlabel()从素食主义者那里使用吗?我通常会得到很好的结果。对于这种绘图,通过直接导出(例如使用png()svg()函数)来预定义绘图图形的最终大小也是非常有帮助和推荐的。只需将绘图函数放在这样的代码中并运行整个块:

svg("ordinationdiagram.svg", width = 8, height = 6)

plot(ord.nmds, type = "n", ...)
points(ord.nmds, ...)
ordipointlabel(ord.nmds, add = T, ...)
legend(...)

dev.off()

直到你运行dev.off()所有图形操作都将放在 svg-graphic 中。

如果您以矢量格式(如 svg)导出,您可以随后在任何矢量图形编辑器(例如 Inkscape)中加载图形,以手动重新排列重叠名称(如果仍然出现)。


推荐阅读