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

如何自定义estaccumR对象绘图:仅显示S与Chao(不含ACE)

自定义estaccumR绘图:仅显示S和Chao(隐藏ACE)

首先确保已加载vegan包(estaccumR是该包的函数),并生成累积估计对象:

library(vegan)
# 生成estaccumR对象,使用dune示例数据集
acc_obj <- estaccumR(dune)

Base R 实现方式

通过提取累积曲线的数值数据,手动绘制指定曲线:

  1. 将estaccumR对象转换为数据框,获取各估计量的数值:
acc_df <- as.data.frame(acc_obj)
  1. 先绘制观测物种数(S)的曲线,再叠加Chao估计值的曲线,同时隐藏ACE:
# 初始化绘图,绘制S曲线
plot(acc_df$S, 
     type = "l", 
     lwd = 2, 
     col = "steelblue", 
     xlab = "样本数量", 
     ylab = "物种数量", 
     main = "物种累积曲线(仅S & Chao)")

# 叠加Chao曲线
lines(acc_df$Chao, 
      type = "l", 
      lwd = 2, 
      col = "firebrick", 
      lty = 2)

# 添加图例区分两条曲线
legend("bottomright", 
       legend = c("观测物种数(S)", "Chao物种估计值"), 
       col = c("steelblue", "firebrick"), 
       lty = c(1, 2), 
       lwd = 2)

ggplot2 实现方式

需要将宽格式数据转换为长格式,再通过ggplot2绘制指定曲线:

  1. 加载必要的包(ggplot2和tidyr用于数据转换):
library(ggplot2)
library(tidyr)
  1. 将数据框转换为长格式,仅保留S和Chao列:
acc_long <- acc_df %>%
  pivot_longer(cols = c(S, Chao), 
               names_to = "估计类型", 
               values_to = "物种数")
  1. 使用ggplot2绘制曲线:
ggplot(acc_long, aes(x = seq_along(物种数), y = 物种数)) +
  geom_line(aes(color = `估计类型`, linetype = `估计类型`), 
            linewidth = 1.2) +
  labs(x = "样本数量", 
       y = "物种数量", 
       title = "物种累积曲线(仅S & Chao)") +
  scale_color_manual(values = c("S" = "steelblue", "Chao" = "firebrick")) +
  scale_linetype_manual(values = c("S" = 1, "Chao" = 2)) +
  theme_minimal()

注:seq_along(物种数)用于生成样本数量的序列,对应estaccumR对象中每行的样本量。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 07:35:06