【问题标题】:Color the individuals of a R PCoA plot by groups按组为 R PCoA 图的个体着色
【发布时间】:2023-03-19 16:19:01
【问题描述】:

应该是一个简单的问题,但到目前为止我还没有找到确切的方法。

我有一个矩阵如下:

sample var1 var2 var3 etc.
1      5    7    3     1
2      0    1    6     8
3      7    6    8     9
4      5    3    2     4

我使用 Vegan 进行了 PCoA 并绘制了结果。现在我的问题是我想根据预定义的组为样本着色:

group sample
1     1
1     2
2     3
2     4

如何导入组,然后根据所属组绘制彩色点?看起来很简单,但我一直在摸索。

谢谢! 赛博

【问题讨论】:

    标签: r plot vegan mds


    【解决方案1】:

    您说您使用了 vegan PCoA,我认为它的意思是 wcmdscale 函数。默认的vegan::wcmdscale 只返回一个与标准stats::cmdscale 类似的分数矩阵,但是如果您添加了一些特殊参数(例如eig = TRUE),您将获得一个完整的wcmdscale 结果对象,其中包含专用的plotpoints 方法你可以这样做: plot(<pcoa-result>, type="n") # no reproducible example: edit like needed points(<pcoa-result>, col = group) # no reproducible example: group must be visible 如果您有现代 vegan (2.5.x),则以下内容也适用: library(magrittr) plot(<full-pcoa-result>, type = "n") %>% points("sites", col = group)

    【讨论】:

    • 感谢您的回答。我试过了,但还是不行。这是我使用的脚本: distmatrix
    • 第一件事:不要使用plot(scores()),而只使用plot!没有plot.scores() 功能,如果使用plot(scores()),则至少必须设置asp=1(用于相等的纵横比)。第二件事:现在您将图形参数提供给 scores() 函数(您不应该使用),而 scores 函数没有图形,但浪费了这些参数。您应该使用scores()将这些参数提供给plot。您从哪里得到使用scores() 的想法?当然不是来自 vegan 文档。
    • 感谢您的回答。最后通过从 metaMDS 函数、points 变量和单独的颜色向量按顺序构建图形来解决这个问题。它是这样的:data.mds &lt;- metaMDS(my.data) 然后col.vect &lt;- c("green", "red") 然后plot(data.mds, type = "n") 然后with(data.grp, points(data.mds, display = "sites", col = col.vect[Groups], bg = col.vect[Groups])
    猜你喜欢
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多