2016-09-27 74 views
2

我正在使用包二部分繪製植物 - 傳粉媒介互動。我將我的原始數據轉換爲包使用的數據框並繪製網頁。但是我想要一個物種(B.griseocollis)的情節中的交互作用的顏色是不同的,我不能得到這個工作。如何在交互網絡中使用ifelse()語句更改顏色?

下面是我的代碼:

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) 

FYI「泛北部灣」是「trtmnts」之一,我有

plotweb(f2w$pbg) 

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

相互作用的兩個轉向青色但不正確的兩項。我意識到沒有人有我的數據集,但只是好奇,如果我的論點在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