2016-05-22 4 views
4

私はコミュニティを生成して描画するには、以下のコードを使用することができます:カスタムIコミュニティの色でしたigraphコミュニティを定義された色でプロットする方法はありますか?

  1. wc <- walktrap.community(subgraph) 
    modularity(wc) 
    membership(wc) 
    
    layout <-layout.fruchterman.reingold(subgraph) 
    
    plot(wc, subgraph, layout=layout, vertex.label=NA, vertex.size=5, edge.arrow.size=.2) 
    

    しかし、コミュニティの色が自動で行われ、私は2つの質問がありますか?

  2. コミュニティエリアにテキストを追加できますか?

答えて

7

はい、両方のことができます。 plot.igraphの引数を使用して、モジュールの色に応じてノードの色を変更したり(モジュールの周囲のポリゴンの色を変更するなど)、簡単です。モジュールにテキストを追加することはそれほど簡単なことではありません。最も簡単な解決策は、プロットに手動でテキストを追加することです。

library(igraph) 

# Generate random graph and community structure 
set.seed(23) 
g <- sample_gnm(15, 45) 
wc <- walktrap.community(g) 

# Plot 
par(mfrow=c(1,2), mar=rep(1,4)) 
layout <-layout.fruchterman.reingold(g) 
plot(wc, g, layout=layout, vertex.label=NA, vertex.size=5, edge.arrow.size=.2) 

# Change colors of nodes, polygons, and polygon borders 
new_cols <- c("white", "red", "black")[membership(wc)] 
plot(wc, g, col=new_cols, mark.border="black", mark.col=c("tan", "pink", "lightgray"), 
    layout=layout, vertex.label=NA, vertex.size=5, edge.arrow.size=.2) 

# Add labels 
text(c(-1.15, 0.8, 0.9), c(0.35, -0.7, 0.8), c("A", "B", "C")) 

関連する問題