2011-12-30 4 views
1

NetworkX 패키지를 사용하여 분배에 의해 제공된 가중치 (예 : 강세 법)가 적용되는 복잡한 네트워크를 그릴 수 있습니까? 그런 다음 가중치 분포 또는 강도 분포를 그리는 코드를 작성하거나 노드의 가중치가 가장 가까운 이웃도를 그리는 코드를 작성할 수 있습니까? 비슷한 정도의 각 클래스 나 비슷한 강도를 채색하십시오.NetworkX를 사용하여 가중치가 적용된 복잡한 네트워크 그리기

나는 약 300 개의 노드로 구성된 복잡한 네트워크의 큰 데이터와 개별 egdes의 가중치에 대한 데이터를 가지고 있습니다. 그런 네트워크를 만드는 가장 좋은 방법은 무엇입니까?

+1

예'networkx는 모든 것을 할 수 있습니다. 나는 당신이 [documentation] (http://networkx.lanl.gov/reference/index.html)을 방문하고 어떤 부분에 갇혀 있다면 그 질문을 할 것을 제안한다. 그건 그렇고, 나는 300 노드 네트워크를 '대형'네트워크로 생각하지 않을 것이다. – Avaris

+0

관찰 해 주셔서 대단히 감사합니다. 나는 가중치 네트워크에 대한 문서화 계정을 실현하기 시작했습니다. 따라서 "degree"섹션에서 "degree"를 계산하고 연관된 코드의 매개 변수에 가중치를 추가하면 힘이 생깁니다. – Aya

답변

3

networkx의 에지는 가중치가 필요한 여러 알고리즘에서 사용할 수있는 'weight'라는 특수 속성을 사용할 수 있습니다. networkx 드로잉 명령을 사용하여 이러한 가중치를 고려할 수 있습니다 (예 : 봄 임베드 시각화의 스프링 강제). 다음과 같은 것 :

>>> import networkx as nx 
>>> import matplotlib.pyplot as plt 
>>> G = nx.Graph() 
>>> # add nodes, edges, etc. 
... 
>>> nx.draw_spring(G) 
>>> plt.show() 
+0

도움 주셔서 대단히 감사합니다. 질문하는 것이 효과적인 이해의 열쇠입니다! – Aya

관련 문제