2013-07-03 3 views
2

여기 NetworkX의 새로운 기능이 있지만 NetworkX 그래프를 쿼리하여 노드 클러스터 내의 모든 노드를 찾을 수 있기를 원했습니다. 다음은 생성 된 예제 그래프입니다. Network of NodesNetworkX - 그래프의 점들의 자연 클러스터 찾기

위에서 볼 수 있듯이 노드 클러스터가 있습니다. 각 클러스터 내에서 모든 노드는 모든 다른 노드에 연결됩니다. 다음과 같은 클러스터 5 개를 확대하여 볼 수 있습니다. 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() 
관련 문제