2016-09-27 27 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