2016-11-15 3 views
0

인접성 매트릭스에서 네트워크 토폴로지 다이어그램 (텔레콤 관련)을 그립니다. 나는 networkx 그래프 (G)를 생성하는 인접한 행렬이있다.Python networkx : 노드 속성을 기반으로 노드 그룹화

특정 사이트 (도시)에는 여러 개의 노드가 있으며이 노드는 서로 연결되어 있거나 연결되어 있지 않을 수 있습니다. 사이트 이름은 노드 이름 (레이블)에서 결정할 수 있습니다.

사이트 내 개별 노드를 표시하면서 동일한 사이트의 노드를 함께 클러스터링하고 (이상적으로 상자를 그릴 수 있습니까?) 노드 이름과 같은 일부 노드 속성을 기준으로 노드를 그룹화하는 것과 같이 생각합니다.

I 다이어그램 사이트 A 다이어그램의 원하는 출력을 보여줍니다. Example graph

동일한 사이트의 노드 사이에 더미 가장자리를 만든 경우 솔루션을 얻을 수 있다고 생각합니다. 사이트에서 동일한 노드가 서로 밀착되도록하기 위해 스프링 레이아웃을 사용하여 높은 가중치를주었습니다. 최적의 솔루션과 같습니다.

감사합니다. 미리 감사드립니다. 또한 numpy를 사용하는 것이 필수적이지 않다는 점에 유의하십시오. networkx 저는 제안에 개방적입니다.

+0

레이아웃을 수행하기 위해 사이트의 실제 위치를 사용할 수 있습니까? 그런 다음 이름을 기반으로 사이트를 그룹화하고 ['scipy.spatial.ConvexHull'] (https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.spatial.ConvexHull)과 같은 것을 사용할 수 있습니다. .html)를 사용하여 주위에 상자를 그립니다. –

+0

[ask]와 [mcve]를 읽고 그에 맞게 질문을 다시 작성하십시오. – boardrider

답변

0

저는 최근에 비슷한 문제를 다루었습니다. 내 솔루션은 더미 그래프를 작성하는 것이 었는데 노드 속성은 새 노드 였고 새 노드 사이의 가장자리는 개별 노드 유형 간의 연결 수에 따라 가중치가 적용되었습니다.