基于R语言iNEXT包绘制Mao Tau稀疏曲线的技术求助
用iNEXT绘制基于net.hour的Mao Tau稀疏曲线(多组对比)
1. 数据格式确认
iNEXT适配两类输入格式,针对你的两类土地数据,最适合的是物种丰度矩阵:
- 行:2行,分别对应「退化地」「森林」
- 列:所有捕获到的蝙蝠物种
- 单元格值:对应组内该物种的总个体数
- 额外单独存储一个向量,记录两组的总
net.hour(比如effort <- c(退化地总net.hour, 森林总net.hour))
如果你的原始数据是长格式(每行是物种-土地类型-丰度-net.hour),可以用tidyr::pivot_wider()转成宽格式。
2. 完整代码实现
加载包并准备数据(替换为你的真实数据)
library(iNEXT) library(ggplot2) # 示例丰度矩阵:替换成你的真实物种丰度数据 abund_matrix <- matrix( c(12, 8, 5, 3, # 退化地各物种丰度 20, 15, 10, 7, 5), # 森林各物种丰度 nrow = 2, byrow = TRUE, dimnames = list(c("退化地", "森林"), c("物种A", "物种B", "物种C", "物种D", "物种E")) ) # 两组的总net.hour:替换成你的真实捕捉工作量数据 total_effort <- c(150, 200)
运行iNEXT分析(基于net.hour缩放)
指定抽样努力为net.hour,同时设置外推到2倍原始样本量:
inext_out <- iNEXT( abund_matrix, datatype = "abundance", effort = total_effort, endpoint = 2, # 外推至2倍原始net.hour se = TRUE, # 计算95%置信区间 conf = 0.95 )
绘制多组对比曲线
两种绘图方式可选,自动包含插值、外推线及置信区间阴影:
# 方法1:用ggiNEXT快速生成 ggiNEXT(inext_out, type = 1) + # type=1对应Mao Tau曲线 labs(x = "捕捉时长(net.hour)", y = "估计物种数") + theme_bw() + scale_color_manual(values = c("退化地" = "#E64B35", "森林" = "#3182BD")) + scale_fill_manual(values = c("退化地" = "#E64B3533", "森林" = "#3182BD33")) # 方法2:自定义ggplot(更灵活) plot_data <- fortify(inext_out, type = 1) ggplot(plot_data, aes(x = x, y = y, color = site, fill = site)) + geom_line(size = 1) + geom_ribbon(aes(ymin = y.lwr, ymax = y.upr), alpha = 0.3, color = NA) + labs(x = "捕捉时长(net.hour)", y = "估计物种数", color = "土地类型", fill = "土地类型") + theme_bw() + scale_color_manual(values = c("退化地" = "#E64B35", "森林" = "#3182BD")) + scale_fill_manual(values = c("退化地" = "#E64B3533", "森林" = "#3182BD33"))
3. 关键参数说明
effort:必须传入每组的总net.hour,iNEXT会基于该值完成稀疏化与缩放;若要将X轴切换为个体数,只需把effort换成两组的总个体数即可endpoint = 2:设置外推至2倍原始抽样努力(net.hour或个体数)type = 1:指定绘制Mao Tau物种累积曲线
常见问题排查
- 无法展示多组曲线:检查丰度矩阵格式是否正确(行对应土地类型,列对应物种),确保输入的是矩阵而非单个向量
- 无置信区间阴影:确认已设置
se = TRUE和conf = 0.95参数 - 缩放结果异常:检查
effort传入的是每组总net.hour,而非单条雾网的工作量
内容的提问来源于stack exchange,提问作者mdashraf403
相关产品推荐
相关产品推荐

