2013-10-20 5 views
1

저는 R에 비교적 익숙합니다. R에서 안수 방법을 수행하는 방법에 대해 머리를 쓰려고 노력 중이므로 다른 소프트웨어를 사용할 필요가 없습니다. 나는 종 대신에 환경 요인을 가진 PCA를 얻으려고 노력하고있다. 나는 토지 이용과 관련하여 질적으로 다른 사이트를 보유하고 있기 때문에 (색이 다른) 최종 플롯에서 그 차이를 보여줄 수 있기를 원했습니다. 그러므로 나는 la gavin simpson이라는 방법을 패키지 채식주의 자와 함께 사용했다. 여태까지는 그런대로 잘됐다.R에 RDA의 화살표를 추가하십시오.

with(fish, status) 
scl <- -1 ## scaling = -1 
colvec <- c("red2", "mediumblue") 
plot(pond.pca, type = "n", scaling = scl) 
with(fish, points(pond.pca, display = "sites", col = colvec[status], scaling = scl, pch = 21, bg = colvec[status])) 
head(with(fish, colvec[status])) 
text(pond.pca, display = "species", scaling = scl, cex = 0.8, col = "darkcyan") 
with(fish, legend("topright", legend = levels(status), bty = "n", col = colvec, pch = 21, pt.bg = colvec)) 

내 환경 변수에 화살표를 넣으려고하면 문제가 발생합니다. biplot 및 ordiplot 등의 다른 기능을 사용하는 경우 두 가지 유형의 사이트에 서로 다른 색을 유지할 수 없으므로 해당 색을 사용하고 싶지 않습니다. 내가 여기에 명령을 사용하는 경우 :

plot(envfit(pond.pca, PondEnv38, scaling=-1), add=TRUE, col="black") 

을 나는 단지 내가 (5 호선)하기 전에 코드를 부여했습니다 환경 변수를 정렬 (어떤 경우에는 완전히 반대)하지 않는, 좋은 화살표를 얻을. 크기 조정을 변경하려고했지만 정렬 할 수 없습니다.

그 문제를 해결하는 방법을 아는 사람이 있습니까?

팁이 유용 할 것입니다.

+0

특정 패키지가 사용되고 있음을 암시했다고 생각할 수도 있지만 해당 필드에 경험이없는 사람에게는 그렇게 보일 것입니다. 또한 데이터가 필요할 것으로 보이므로 문제를 설명하고 게시하거나 링크하는 작은 데이터 집합을 구성하는 것이 좋습니다. –

+0

2 시간을 기다린 후, 나는 명확성이 부족하여 마감하기로 결정했습니다. –

+0

@DWin 흠, OP는 그들이 채식주의 자 **를 사용하고 있다고 말하면서 그런 태그가 붙어 있습니다. 나는 명백한'require '가 모호성을 남기지 않았을 거라 생각하지만, 2 시간? 진심으로? 모든 사람들이 항상 여기에 매달려있는 것은 아닙니다. 조기. –

답변

2

재현 가능한 예제를 제공하지 않아서 무엇이 잘못되었는지 명확하지 않으며 잘못된 것에 대한 설명을 따르는 데 어려움이 있습니다. 여기 당신이하려고하는 것처럼 보이는 일을 완벽하게 수행 한 예제가 있습니다.

data(varespec) 
data(varechem) 

ord <- rda(varespec) 

set.seed(1) 
(fit <- envfit(ord, varechem, perm = 999)) 

## make up a fake `status` 
status <- factor(rep(c("Class1","Class2"), times = nrow(varespec)/2)) 

> head(status) 
[1] Class1 Class2 Class1 Class2 Class1 Class2 

지금

enter image description here

를 제공하고 직접 envfit 객체를 꾸몄다 경우 모든 화살은 마찬가지로 가리키는 것으로 보인다 어떤

layout(matrix(1:2, ncol = 2)) 
## auto version 
plot(fit, add = FALSE) 

## manual version with extra things 
colvec <- c("red","green") 
scl <- -1 
plot(ord, type = "n", scaling = scl) 
points(ord, display = "sites", col = colvec[status], pch = (1:2)[status]) 
points(ord, display = "species", pch = "+") 
plot(fit, add = TRUE, col = "black") 
layout(1) 

플롯.

+0

귀하의 게시물에 많은 감사를드립니다. 나는 그것을보고, 내 실수를 고쳤다. 그것은 어리 석다. –