2013-07-03 1 views
2

Все еще новичок в NetworkX здесь, но я хотел иметь возможность запросить граф NetworkX, чтобы найти все узлы в кластере узлов. Вот пример графика, который я сгенерировал: Network of NodesNetworkX - Поиск естественных кластеров точек на графике

Как вы можете видеть, существуют кластеры узлов. В каждом кластере каждый узел подключается ко всем другим узлам. Вы можете видеть, что при масштабировании пяти таких кластеров ниже: Zoom in on 5 clusters

Я хотел бы узнать, как я могу извлечь каждый отдельный кластер узлов. Каждый узел называется с длинным именем (например, «A/Vietnam/2009/8/431»), и я знаю, как ловить отдельный узел с помощью функций NetworkX, но я не знаю, как получить все подключенное узлов внутри этого кластера. Язык предпочтения - Python (2.7), и я использую пакет NetworkX вместе.

Спасибо всем!

ответ

7
 import networkx as nx 

    #G is the networkx graph 
    sub_graphs = nx.connected_component_subgraphs(G) 

    #n gives the number of sub graphs 
    n = len(sub_graphs) 

    # you can now loop through all nodes in each sub graph 
    for i in range(n): 
     print "Subgraph:", i, "consists of ",sub_graphs[i].nodes()