2017-12-05 21 views
7

私は10個以上の環境ベクターを持つ一連のRDAをRにプロットしています。環境変数は、それぞれ5つのカテゴリのいずれかに分類されます。これらのカテゴリを反映するようにベクターの色を使いたいと思います。私は生の黒と白のプロットを作成し、それをパワーポイント(超時間がかかる)でトレースすることによって幾分ゲットーのやり方でやったが、これに固有の問題がたくさんあるが、それは少なくともよく見える。 そのプロットは、ベクトルの色に注意してください。 enter image description hereRDAベクターのグループ別R

出力を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 =「...」コマンドが、私は言うするかどうかはわかりませんそれをグループごとにサブセット化します。すべての助けをいただければ幸いです。

答えて

1
library(vegan) 

#DATA 
data(varespec) 
data(varechem) 
env = varechem 
bio = varespec 
rm(list = c("varechem", "varespec")) 

#Assign colors based on groups for the columns of env 
groups = rep(c("red", "blue"), length.out = NCOL(env)) 

rda1 = rda(X = bio, Y = env) 
plot(rda1, type = "n") 
points(rda1) 
text(rda1, display = "bp", col = groups) 
2

問題のカップルがここにあります。後者は本当に問題ではないplot.cca

あたりとして

バイプロットスコアをプロットする
  1. 、および
  2. はバイプロットのスコアをスケーリングあなたがバイプロットの得点だけをプロットしているのであれば、それほど多くはありますが、このようなプロットの一般的な解決策では、他の得点も引き出す​​必要があると考える必要があります。

    はここで、今、私たちは愚かな按手(家庭の人々にこれをしない)

    ord <- rda(varespec ~ ., data = varechem) 
    

    次に合わせ

    library('vegan') 
    data(varespec, varechem) 
    

    に組み込まれたデータを使用して再現性の例ですバイプロットスコアに

    を抽出します
    bp <- scores(ord, display = 'bp') 
    

    とし、各バイプロットスコアを割り当てるグループを含む変数があるとします変数

    f <- factor(sample(1:5, nrow(bp), replace = TRUE)) 
    

    と我々は

    cols <- c('red','black','green','navy','purple') 
    

    を使用し、長さnrow(bp)の一つに色のこのベクトルを拡張したい色の関連するベクトル、バイプロットのスコアごとすなわち、1つの色/

    cols <- cols[f] 
    

    次に、矢印を追加できる空のプロット領域を準備してプロットを開始します

    plot(ord, type = 'n') 
    

    上記の例では、プロット領域を設定して、種とサイト/サンプルのスコアを調整します。

    我々は今、バイプロットスコアは

    mul <- ordiArrowMul(bp, fill = 0.75) 
    

    最後にプロット領域の指定された割合(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) 
    

    ティs製造

    enter image description here

関連する問題