gpt4 book ai didi

r - 按 R 中的组为 RDA 向量着色

转载 作者:行者123 更新时间:2023-12-04 12:39:32 25 4
gpt4 key购买 nike

我正在用 R 绘制一系列 RDA,每个 RDA 都有 10 多个环境向量。每个环境变量都属于 5 个类别之一。我希望矢量颜色反射(reflect)这些类别。我通过制作原始的黑白情节,然后在 Powerpoint 中跟踪它( super 耗时),以某种贫民窟的方式做到了,但是这有很多固有的问题,但至少看起来不错。
这是那个情节,注意矢量颜色。
enter image description here

我想让我的输出是 R 原生图。我用来制作基本情节的情节目前是:

#download the data#
env<- read.csv("environmenta data.csv")
bio<- read.csv("bio data.csv")

#break out the groups of environmental vectors#
#these are purley for example#
group1<-as.matrix(subset(env,select=c(a,b,c))
group2<-as.matrix(subset(env,select=c(d,e,f,h))
group3<-as.matrix(subset(env,select=c(g))
group4<-as.matrix(subset(env,select=c(j,k,l,o))
group5<-as.matrix(subset(env,select=c(m,n,))

#run the RDA#
rda1<-rda(bio,env)

#Plot it#
plot(rda1,type="n",bty="n",main="",
xlab="XX% variance explained",
ylab="XX% variance explained",
col.main="black",col.lab="black", col.axis="white",
xaxt="n",yaxt="n")
#points(rda1,display="species",col="gray",pch=20)
#option to display species points
#text(rda2,display="species",col="gray")
#option for species labels

points(rda1,display="cn",col="black",lwd=2)#<<< guessing this is the key statement for my issue, but not sure
text(rda1,display="cn",col="black",cex=0.5)

我假设答案就在这几点--> col="..."命令,但我不确定如何告诉它按组进行子集化。任何和所有帮助将不胜感激。

最佳答案

这里有几个问题:

  • 绘制双标图分数,以及
  • 根据 plot.cca 缩放双标图分数

  • 如果您只绘制双标图分数,后者并不那么重要,但是这种绘图的一般解决方案要求我们考虑可能还需要绘制其他分数。

    这是一个使用内置数据的可重现示例
    library('vegan')
    data(varespec, varechem)

    现在我们适合一个愚蠢的排序(不要在家里做这件事,伙计们)
    ord <- rda(varespec ~ ., data = varechem)

    接下来,提取双标图分数
    bp <- scores(ord, display = 'bp')

    并假设我们有一个变量,其中包含我们希望将每个双标图分数分配给的组
    f <- factor(sample(1:5, nrow(bp), replace = TRUE))

    以及我们想要使用的相关颜色向量
    cols <- c('red','black','green','navy','purple')

    并将此颜色向量扩展为长度 nrow(bp) 之一,即每个双标图分数/变量一种颜色
    cols <- cols[f]

    接下来开始绘图,准备一个空的绘图区域,我们可以在其中添加箭头
    plot(ord, type = 'n')

    在上面的示例中,我们设置了绘图区域,以便容纳物种和站点/样本分数。

    我们现在计算一个乘数,允许双标图分数占据绘图区域的指定比例 ( fill = 0.75)
    mul <- ordiArrowMul(bp, fill = 0.75)

    最后,添加双标箭头,按其组着色
    arrows(0, 0, mul * bp[,1], mul * bp[,2],
    length = 0.05, col = cols)

    并为双标图箭头添加标签
    labs <- rownames(bp)
    text(ordiArrowTextXY(mul * bp, labs), labs, col = cols)

    这产生

    enter image description here

    关于r - 按 R 中的组为 RDA 向量着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47658880/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com