2016-09-27 12 views
2

私はバイパータイトパッケージを使用して植物 - 花粉媒介者相互作用をプロットしています。生データをパッケージで使用されるデータフレームに変換し、ウェブをプロットします。しかし、私は1つの種(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 "PBGは、" 私は相互作用の

plotweb(f2w$pbg) 

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

2つはシアンに変わりはなく、正しい2持っている "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

関連する問題