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

geom_point()无NA却丢失数据:8个样本点未绘制问题求助

排查建议
  • 检查手动形状映射的完整性
    你用了scale_shape_manual指定每个位点的形状,若有位点未在values参数中定义映射,ggplot会自动丢弃这些行。执行以下代码找出未被映射的位点:

    # 找出所有Catch_Location_Site中未在scale_shape_manual里定义的取值
    setdiff(unique(Comp_Salmon$Catch_Location_Site), names(c("River Sella - Spain"=0, ...)))
    # 把...替换成你实际的shape映射列表
    

    如果结果正好是8个位点,说明问题出在这里,补充对应的形状映射即可。

  • 验证误差棒计算是否生成NA
    原始数据无NA,但计算误差棒的上下限时可能意外产生NA(比如SD为负数)。执行以下代码检查:

    Comp_Salmon %>%
      mutate(
        ymin = Mean_D15N - D15N_SD,
        ymax = Mean_D15N + D15N_SD,
        xmin = Mean_D13C - D13C_SD,
        xmax = Mean_D13C + D13C_SD
      ) %>%
      filter(is.na(ymin) | is.na(ymax) | is.na(xmin) | is.na(xmax))
    

    若返回结果包含行,说明这些行的误差棒计算出了问题,修复后即可显示。

  • 临时移除手动形状映射测试
    注释掉scale_shape_manual这一行,重新绘图。如果所有位点都能显示,直接证明是手动形状映射遗漏了8个位点的定义。

  • 确认数据行未被意外过滤
    检查数据集的总行数是否符合预期:

    nrow(Comp_Salmon)
    

    若行数比预期少,说明之前的代码可能对数据集做了未注意到的筛选操作,回溯数据处理步骤排查。

  • 将警告转为错误定位具体行
    执行以下代码把警告强制转为错误,运行绘图代码时会直接报错并定位到具体缺失的行:

    options(warn = 2)
    Mean_Error_Comp_Salmon # 重新运行绘图代码
    

    查看报错对应的行,对比其他缺失行的共性,进一步定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:05:33