R

时间:2017-12-05 17:00:45

标签: r vegan

我在R中绘制了一系列RDAs,每个RAs都有10个以上的环境向量。环境变量分别属于5个类别之一。我喜欢矢量颜色来反映这些类别。我通过生成原始的黑白图,然后在Powerpoint中追踪它(超级耗时),以一种有点贫民窟的方式做到了,但是这有很多固有的问题,但它看起来至少是好的。 在这里绘制,注意矢量颜色。 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)

我假设答案落在这一点上 - &gt;山口=&#34; ...&#34;命令,但我不知道如何按组分组。任何和所有的帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

这里有几个问题:

  1. 绘制双标图分数,
  2. 根据plot.cca
  3. 缩放双标图分数

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

    这是一个使用内置数据的可重复示例

    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

答案 1 :(得分:1)

15