You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RStudio中用ordihull/orditop绘制NMDS图无法居中且被截断

故障根因

ordihull、orditorp均为vegan包的叠加型绘图函数,本身不具备自动初始化画布、匹配NMDS全样本坐标范围的能力,仅会在当前已有的绘图坐标系上渲染图层。你遇到的偏移、截断问题本质是未提前绘制NMDS基础底图就直接调用叠加函数,或是基础绘图的xlim/ylim范围设置过窄,和par边距参数没有关联,因此调整par设置无法解决问题。

修复方案
  • 第一步优先绘制NMDS基础底图,初始化匹配全样本的坐标范围:
    如果你使用metaMDS生成NMDS结果,示例代码如下:
    library(vegan)
    # 假设nmds_res为metaMDS输出的结果对象
    # type="n"表示仅生成坐标系、暂不绘制样点,避免后续叠加图层重复
    plot(nmds_res, type = "n", xlab = "NMDS1", ylab = "NMDS2")
    # 若仍存在范围偏差,可手动指定坐标范围覆盖所有样点得分
    # nmds_scores <- scores(nmds_res)
    # plot(nmds_res, type = "n", xlim = range(nmds_scores[,1]), ylim = range(nmds_scores[,2]), xlab = "NMDS1", ylab = "NMDS2")
    
  • 第二步再叠加ordihull、orditorp图层
    # 假设group为样本分组变量
    ordihull(nmds_res, groups = group, col = 1:length(unique(group)), lwd = 1.5)
    orditorp(nmds_res, groups = group, col = 1:length(unique(group)), cex = 0.9)
    # 最后按需添加样点、图例等元素
    points(nmds_res, pch = 16, col = group, cex = 1)
    legend("topright", legend = unique(group), col = 1:length(unique(group)), pch = 16)
    
  • 额外排查项:如果RStudio绘图面板仍显示异常,点击面板顶部的清除历史按钮清空缓存,或导出为pdf/png文件查看,导出的文件无异常则为RStudio本地面板渲染缓存问题,不影响实际绘图结果。

内容的提问来源于stack exchange,提问作者CuriousDude

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:15:03