2016-11-13 22 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

這取決於您想要顯示什麼?讓我們舉個例子:

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

print()在Python調用對象,將其轉換成一些人類可讀的,在一個VertexClustering的情況下,每行表示(在方括號中的集羣ID)集羣的__str__()方法,列出屬於該羣集的頂點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 

然後,您可以訪問每個集羣的成員像這樣的頂點ID列表:

>>> c[0] 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] 

VertexDendrogram對象的情況下,IGRAPH的打印方法即使打印好的文本聚類:

>>> 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