這取決於您想要顯示什麼?讓我們舉個例子:
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](https://i.stack.imgur.com/ngiOD.png)
非常有幫助,謝謝! – Carla