如何将 specnames 添加到 rankabuncomp?

how to add specnames to rankabuncomp?

我正在尝试将物种名称添加到 rankabuncomp 图中。我试图将 specnames = T 添加到 rankabundance 函数,但出现错误。请帮我解决这个问题。非常感谢。

library(vegan)
library(BiodiversityR)
data(dune.env)
data(dune)
RankAbun.1 <- rankabundance(dune)
RankAbun.1
rankabunplot(RankAbun.1,scale='abundance', addit=FALSE, specnames=c(1,2,3))
rankabuncomp(dune, y=dune.env, factor='Management', scale='proportion',   legend=FALSE)
#to add specnames
rankabuncomp(dune, y=dune.env, factor='Management', specnames=c(1,2,3), scale='proportion', legend=FALSE, labels=FALSE)

BiodiversityR::rankabuncomp 明确禁止添加物种名称。这是在函数中硬编码的,如果不编辑函数就无法更改(在 rankabunplot() 调用中查找 specnames = NULL)。帮助页面没有为 rankabuncomp 提供 specnames 参数,因此也记录了这一点。我能理解这个决定:rankabuncomp 在一张图中画了几条线,而且这些线往往非常相似,以至于物种名称会相互覆盖,情节变得不可读。

要添加线条,您要么需要编辑函数,要么必须使用一系列 rankabunplot 命令在一个图中叠加图形。以下是如何使用 dune 数据执行此操作的示例:

library(BiodiversityR)
data(dune, dune.env)
## list of models
mods <- with(dune.env, lapply(levels(Management), function(lev)
    rankabundance(dune, dune.env, 'Management', lev)))
## level 4 seems to be most extreme: draw it first 
rankabunplot(mods[[4]],scale='abundance', addit=FALSE, specnames=c(1,2,3))
## add the rest
## change colour etc to separate the lines if wished
rankabunplot(mods[[3]],scale='abundance', addit=TRUE, specnames=c(1,2,3))
rankabunplot(mods[[2]],scale='abundance', addit=TRUE, specnames=c(1,2,3))
rankabunplot(mods[[1]],scale='abundance', addit=TRUE, specnames=c(1,2,3))

生成的图不是很可读。如果你使用 y 轴的比例缩放,它变得更不可读。但是,您可以做到。