r - 整理 NMDS 排序图
问题描述
我有来自采石场和钙质草原地点的繁殖鸟类组合数据,并希望将它们显示在 nmds 排序图中,以及作为向量的环境参数。如何整理物种标签?我正在使用素食包进行协调。
我已经使用ordiselect
goeveg 包中的函数减少了显示的物种数量。标签仍然重叠,但我不想进一步减少物种。
使用该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)
到目前为止,我的情节是这样的:
解决方案
你试过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)中加载图形,以手动重新排列重叠名称(如果仍然出现)。
推荐阅读
- sql-server - 获取适用于 Oracle 和 SQL Server 的上个月的最后一天
- android - 使用SIP建立呼叫时,是主叫还是被叫建立RTP流?
- kotlin - 从redis中的字符串反序列化kotlin中的可选
- wpf - 在 RadGridView 数据列中显示空白而不是零
- websphere - 安装 IBM HTTP 服务器?
- macos - 为什么“ls -l /dev”和“/bin/ls -l /dev”有不同的输出?macOS
- python - 获取pandas中的一行数据作为dict
- ios - Swift & Firebase Auth 检查 App Delegate?
- java - 从java中的数组中找出n个缺失元素
- django - 可能包含“空”对象的对象的 URL 路径