2016-08-31 27 views
2

私は、igraphに取り組んで、KEGG xmlから取得したグラフを自分の視覚化しようとしています。私はグラフとエッジリストのための隣接行列を勉強しました。今私は私のエッジのためのいくつかの条件を持っています。例えば、私は阻害、活性化、結合結合(重み付けなし)を持っています。今度は、エッジを別々に色付けしたいと思います。また、各条件についてエッジの形状を違うものにしたいと思っています。たとえば、活性化のための矢印のあるエッジと緑色のエッジ。エッジの後ろに縦に横たわっており、抑制のために赤で色がついているエッジ。バインディング結合のための点線かもしれません。igraphのエッジ条件R

反応という名前マイエッジリストは、この

> entry1 entry2 name 

    > 59   62  activation 
    > 62   57  Inhibition 
    > 61   60  binding association 
    > 53   42  activation 

のように見える私のノードは、有向隣接行列の形です。

plot(G,vertex.shape= "rectangle", edge.arrow.size=.3, edge.color=ifelse(reactions$name =="activation", "green", "red"),vertex.color="gold", vertex.size2=1,vertex.frame.color="gray", vertex.label.color="black", vertex.label.cex=1, vertex.label.dist=0.5, edge.curved=0.2) 

私は、コードは最初の活性化のために働くかどうかを確認するだけトラインだったし、私は他の条件を扱うが、私のすべてのエッジがないだけで、活性化するもの緑色です。

私はこれを手伝ってくれますか?私はifelseでedge.colorを使ってみましたが、実際にそれを使う方法は分かりません。

+0

こんにちはSaamar、これまでに何を試しましたか? XMLソース、またはXMLのサブセットと共に、使用しているコードのスニペットを投稿できますか? –

+0

私の質問を編集しました@KeithHughitt –

答えて

2

データフレーム内の条件で変数を参照する代わりに、グラフ自体のデータを参照してみてください。ここで私はあなたのグラフを再作成することができます

str(G) 

(e/c)たちが色を調整するようにしたいだけで何、statusは、エッジの特徴であることを告げている:

library(igraph) 

d <- data.frame(ego=c('59', '62', '61', '53'), alter=c('62', '57', '60', '42'), status=c("activation","Inhibition","binding association","activation")) 

G <- graph_from_data_frame(d) 

はグラフが含まれるかを見ることができますおよび/またはエッジの形状を含む。

plot(G) 

plot(G, vertex.shape= "rectangle", edge.arrow.size=.3, edge.color=ifelse(E(G)$status =="activation", "green", "red"), vertex.color="gold", vertex.size2=1, vertex.frame.color="gray", vertex.label.color="black", vertex.label.cex=1, vertex.label.dist=0.5, edge.curved=0.2)