2013-01-11 5 views
16

Рисование клике графа сКак увеличить интервал узла для networkx.spring_layout

import networkx as nx 
.... 
nx.draw(G, layout=nx.spring_layout(G)) 

производит следующую картину:

enter image description here

Очевидно, что расстояние между узлами (например, край длина). Я гугл это и нашел this suggestion здесь:

Для некоторых алгоритмов компоновки есть параметр «масштаб», что может помочь. например

В 1: импорт NetworkX, как пе

В 2: G = nx.path_graph (4)

В работе [3]: поз = nx.spring_layout (G), #default в масштабе = 1

В [4]: ​​nx.draw (G, пос)

В работе [5]: поз = nx.spring_layout (G, шкала = 2) # двойного расстояния между всеми узлами

В работе [6]: nx.draw (G, пос)

Однако параметр scale-видимому, не оказывает никакого влияния.

Каков правильный метод получения лучшего рисунка?

+0

Помимо ответа, представленного ниже, я также обнаружил, что увеличение размера фигуры помогает. – ericmjl

ответ

22

Хорошо, мой ответ слишком поздно для этого вопроса. Но решение этой проблемы заключается в версии NetworkX версии 1.8, которая еще не выпущена, но доступна через git hub.

Выполните следующие действия, чтобы увеличить расстояние между узлами:

pos = nx.spring_layout(G,k=0.15,iterations=20) 
    # k controls the distance between the nodes and varies between 0 and 1 
    # iterations is the number of times simulated annealing is run 
    # default k =0.1 and iterations=50 

Tweak с этими параметрами, чтобы увидеть, как это работает. Но, несмотря на это, нет гарантии, что все узлы не перекрываются.

Смежные вопросы