【问题标题】:How to plot sites in different colours in a NMDS plot in R (vegan package)?如何在 R(素食包)的 NMDS 图中绘制不同颜色的站点?
【发布时间】:2019-02-05 11:10:08
【问题描述】:

我有来自草地(站点 1-14)和采石场(站点 15-28)站点的数据,并希望它们在我使用 vegan 包创建的 NMDS 图中具有不同的颜色,例如。 G。站点编号 1-14 为红色,15-28 为蓝色。

我是 R 新手,不熟悉图形编辑。

vare.mds <- metaMDS(species, trace=FALSE)
plot(vare.mds, type = "n")
text(vare.mds, display = "sites")

【问题讨论】:

    标签: r plot vegan


    【解决方案1】:

    假设样本按照您指定的顺序(第 1-14 行是草地,第 15-28 行是采石场),那么在基本图形中执行此操作的最简单方法是创建所需长度的因子变量:

    grp <- factor(rep(c('grassland', 'quarry'), each = 14))
    

    然后为两组创建一个颜色向量

    cols <- c('red','black')
    

    然后您可以使用col 参数为text() 调用创建的文本着色,该参数通常可用于大多数基本图形绘图函数。

    要查看实际执行绘图时会发生什么,我们要做的是使用包含组成员资格的因子 grp 索引颜色向量 cols

    > cols[grp]
     [1] "red"   "red"   "red"   "red"   "red"   "red"   "red"   "red"   "red"  
    [10] "red"   "red"   "red"   "red"   "red"   "black" "black" "black" "black"
    [19] "black" "black" "black" "black" "black" "black" "black" "black" "black"
    [28] "black"
    

    grp 存储为数值向量,其元素索引每个观察的级别:

    > as.numeric(grp)
     [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2
    

    因此,在cols[grp] 中,grp 成为一个数字向量,分别索引第一种或第二种颜色,并根据您的每个网站的需要。

    所以,text() 将如下所示:

    text(vare.mds, display = "sites", col = cols[grp])
    

    在你的情况下,简单地调用也足够了

    text(vare.mds, display = "sites", col = rep(cols, each = 14))
    

    因为这些组被安排在连续的样本块中,但如果不是这种情况(如果您忘记以相同的方式对关联数据集进行排序,那么重新排序不一定是一件好事)那么我上面描述的方法是有益的.

    为了制作一个可直接重现的示例,以下是 vegan

    提供的 varespec 数据集的全部内容
    library('vegan')
    data(varespec)
    
    ## varespec has on 24 observations so 1-12 will be grassland and 13-24 quarry
    grp <- factor(rep(c('grassland', 'quarry'), each = 12))
    
    ## vector of colours
    cols <- c('red', 'black')
    
    set.seed(1)
    ord <- metaMDS(varespec, trace=FALSE)
    plot(ord, type = 'n')
    text(ord, display = 'sites', col = cols[grp])
    legend('bottomright', legend = tools::toTitleCase(levels(grp)),
           fill = cols, bty = 'n')
    

    产生

    【讨论】:

    • 正是我需要的。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多