2017-12-05 17 views
7

각 RDA에는 10 개 이상의 환경 벡터가있는 일련의 RDA가 그려져 있습니다. 환경 변수는 각각 5 가지 카테고리 중 하나에 속합니다. 벡터 색상에 이러한 카테고리를 반영하고 싶습니다. 나는 흑인과 백인의 원시 음모를 제작하여 약간의 빈민가 패션을 한 다음, Powerpoint (매우 시간이 많이 소요되는)에서 그것을 추적하지만, 이것에 고유 한 문제가 많지만 적어도 좋아 보인다. 그 음모는 벡터 색상을 참고하십시오. enter image description here그룹별로 RDA 벡터를 색칠합니다. 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

여기에 문제의 몇 가지가 있습니다

  1. 행렬도 점수를하려하고,
  2. plot.cca

후자에 따라, 행렬도 점수를 확장하지 않습니다 정말 문제 만약 당신이 단지 biplot 점수를 그리기 만하면됩니다. 그러나 이런 종류의 플로팅에 대한 일반적인 해결책은 다른 점수들이 추첨 될 필요가 있다고 생각할 것을 요구합니다. 여기

우리가 바보 조정에 맞게

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

에 내장 된 데이터를 사용하여 재현 예제

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

다음, 행렬도 점수를 추출 (집 사람들에서이 작업을 수행하지 않음)

bp <- scores(ord, display = 'bp') 

우리는 각 biplot 점수를 할당하려는 그룹을 포함하는 변수가 있다고 가정합니다 변수

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') 

위의 예에서 우리는 종과 사이트/표본 점수가 수용되도록 플롯 영역을 설정 한 채로 두었습니다.

우리는 이제 행렬도 점수가

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