2016-11-13 15 views
1

これはおそらく非常に簡単な質問です。私はPythonに新しいので、すべての助けに感謝します!igraph出力を表示するにはどうしたらいいですか?

私が以下に示したコードでは、実際にメモリオブジェクトの代わりに出力をどのように表示できますか?

Graph.clusters(g) 
Out[106]: <igraph.clustering.VertexClustering at 0x1187659d0> 

Graph.community_edge_betweenness(g, clusters=None, directed=True, weights=None) 
Out[107]: <igraph.clustering.VertexDendrogram at 0x118765d90> 

答えて

2

正確に表示したいことは何ですか?のは、例を見てみましょう:Pythonで

import igraph 
g = igraph.Graph.Barabasi(n = 20, m = 3) 
c = g.clusters() 

print()が読み取り可能な、VertexClusteringの場合、各行は(角括弧内のクラスタID)クラスタを表す人間の何かに変換オブジェクトの__str__()メソッドを呼び出し、そのクラスタに属する頂点IDがリストアップされます。

VertexDendrogramオブジェクトの場合
>>> c[0] 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] 

、IGRAPHの印刷方法:あなたはこのような頂点IDのリストとして、各クラスタのメンバーにアクセスすることができ、その後

>>> print(c) 
Clustering with 20 elements and 1 clusters 
[0] 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 

:最初の行は、簡単な説明が表示されますでも素敵なテキスト樹形図を印刷します

>>> f = g.community_fastgreedy() 
>>> print(f) 
Dendrogram, 20 elements, 19 merges 

7 3 14 10 5 16 1 0 9 8 6 2 4 18 12 13 19 15 17 11 
| | | | | | | | | | | | | | | | | | | | 
`-' | `--' | | | | `-' | `-' `--' | | `--' 
| | | | | | | | | | | | | | 
`--' | | `-' | `--' | | | `---' 
|  | | | | | | | | |  
|  | `---' | | | | `----'  
|  |  | | | | |  |  
`-----'  `----' | `----'  |  
    |   |  |  |   |  
    |   `------'  `---------'  
    |    |    |    
    `-------------'    |    
      |      |    
      `----------------------' 

最後に、あなたはIGRAPHの素敵なプロット機能を使用して結果を表示することができます。

i = g.community_infomap() 
colors = ["#E41A1C", "#377EB8", "#4DAF4A", "#984EA3", "#FF7F00"] 
g.vs['color'] = [None] 
for clid, cluster in enumerate(i): 
    for member in cluster: 
     g.vs[member]['color'] = colors[clid] 
g.vs['frame_width'] = 0 
igraph.plot(g) 

ここでは、そのクラスタ(コミュニティ)のメンバーシップで頂点を色付け:ありがとう、

vertices colored by cluster membership

+0

非常に便利! – Carla

関連する問題