2016-09-27 2 views
2

나는 bipartite 패키지를 사용하여 식물 - pollinator 상호 작용을 계획하고있다. 내 원시 데이터를 패키지에서 사용하는 데이터 프레임으로 변환하고 웹을 플롯합니다. 그러나 한 종 (B.griseocollis)의 플롯에서 상호 작용의 색이 달라지기를 원하며이 효과를 얻지 못합니다. 나는 상호 작용의상호 작용 네트워크에서 ifelse() 문을 사용하여 색상을 변경하는 방법은 무엇입니까?

plotweb(f2w$pbg) 

plotweb(f2w$pbg, col.interaction = ifelse(as.character(bombus_rxc$beesp) == 
"B.griseocollis", "cyan4", "grey80")) 

두 개의 시안을 설정하지만 올바른이 있습니다

frame2webs(bombus_rxc, varnames= c("ID","beesp","trtmnt"), type.out="list", 
emptylist=TRUE) 

f2w <- frame2webs(bombus_rxc, varnames= c("ID","beesp","trtmnt"), 
type.out="list", emptylist=TRUE) 

참고 "PBG"는 "trtmnts"중 하나입니다

다음은 내 코드입니다. 아무도 내 데이터를 가지고 있지 않다는 것을 알지만, col.interaction 문의 내 인수에 분명히 잘못된 것이 있으면 호기심이 생깁니다.

답변

1

색상을 호출 할 때 일련 번호가없는 벡터가 호출됩니다. 마지막 음모로. 여기

거친 재현 예입니다 (당신은 쉽게 당신의 질문에 대답하기 위해 데이터를 저장하기위한 이러한 만들려고 노력한다) :

bombus_rxc=mtcars 
bombus_rxc$ID=rownames(bombus_rxc) 
bombus_rxc$beesp=bombus_rxc$carb 
bombus_rxc$trtmnt=rep(c("pbg","abc")) 
bombus_rxc 

그리고 여기 플롯 작업 할 수있는 방법입니다 :

frame2webs(bombus_rxc, varnames= c("ID","beesp","trtmnt"), type.out="list", 
emptylist=TRUE) 

f2w <- frame2webs(bombus_rxc, varnames= c("ID","beesp","trtmnt"), 
type.out="list", emptylist=TRUE) 

plotweb(f2w$pbg) 

plotweb(f2w$pbg,col.interaction=ifelse(colnames(f2w$pbg)==1,"cyan4","grey80")) 

희망 사항은 실제 데이터에 적용됩니다.

+0

정말 고마워요! –

+0

듣기 좋습니다! 이 경우 (위의 답변을 수락하십시오) (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)하십시오. – desc

+0

유용한 예제에 @desc 감사합니다. 이것은 높은 영양 수준 (예 : 수분 조절제)에서 낮은 영양 수준 (예 : 식물)에 이르기까지 한 방향으로 만 상호 작용을 착색하는 것으로 보인다. 식물에 의해 색상을 지정하는 코드가 있다면 멋질 것입니다. 운수 나쁘게. 'plotweb' 함수의 도움은 채색면을 잘 커버하지 못합니다. – Valentin

관련 문제