2010-03-04 5 views
9

Graphx를 사용하고 있지 않은 이유는 Networkx와 (과) 잘 어울리는 데 문제가 있기 때문입니다. 나는 이것이 이상하다는 것을 알고 있지만,이 문제를 해결하기위한 많은 제안을 시도했지만, 나는 세상에서 가장 나쁜 행운을 갖고있는 것 같다. 그러므로 GraphViz를 사용하지 않고 Networkx와 함께 해결해야 할 문제가 있습니다.Networkx의 노드 표시 크기 변경

내 프로그램은 문서를 읽고 문서의 내용을 기반으로 MindMap을 그려 봅니다. 그러나 실제로 노드를 그릴 때 Networkx는 기본 크기를 갖는 것으로 보입니다. 이것은 많은 텍스트가 내 노드로 들어가기 때문에 나에게 좋지 않습니다. 내 노드의 표시 크기를 늘릴 수있는 방법이 필요합니다 (임의로, 해당 노드에 속한 텍스트의 크기를 기준으로).

저는 Networkx 사이트를 비롯하여 Google의 다른 검색 결과 200 개와 Google 검색 결과 200 개를 사용해 보았습니다.

답변

10

nx.draw(G, node_size=size)을 시도하십시오. size은 노드 수와 동일한 길이의 스칼라 또는 배열 일 수 있습니다.

+2

이 질문이 지나치게 간단한 질문인데 Networkx를 처음 접하는 분도 많습니다. 그 크기가 노드의 수와 같은 길이의 배열이 될 수 있다고 말하면 배열의 각 요소는 무엇입니까? 특정 노드의 크기를 나타내는 스칼라입니까? 그렇다면 Networkx는 어레이의 각 색인을 해당 노드와 상관시키는 것을 어떻게 알 수 있습니까? 결국 모든 그래프가 내 그래프에서 같은 크기가되는 것은 아닙니다. – inspectorG4dget

+1

좋은 질문입니다. 지난 번 시도한 결과, sizes = [x * 2 for x]와 비슷한 간단한 목록을 만들었습니다. 여기서 노드 이름은 정수입니다. 보다 복잡한 예제의 경우, 노드가 그래프에 추가되거나 노드를 통해 반복 될 때 노드 크기를 목록에 추가하십시오. – Nick

+0

G.nodes()와 동일한 길이의 노드 표시 크기 목록 (L)을 만들면 G.nodes() [i]의 크기가 L [i]로 설정된다는 것을 알 수 있습니다. – inspectorG4dget