Graphviz имеет несколько программ для построения графиков, каждая из которых лучше подходит для некоторых типов графиков Стандартная программа используется в сети x neato
. Но есть одна программа, которая намного лучше для ориентированных графов, особенно DAG - dot
. Просто посмотрите на neato
вывод:
nx.draw(G, pos=nx.nx_pydot.graphviz_layout(G))
и для dot
вывода:
nx.draw(G, pos=nx.nx_pydot.graphviz_layout(G, prog='dot'))
Я настоятельно рекомендую вам использовать graphviz_layout
с prog='dot'
. Но если вы хотите использовать стандарт spring_layout
, вам следует использовать параметр k
. Пружинная компоновка не имеет параметра гравитации , но k
является таким:
k (float (default=None)) – Optimal distance between nodes. If None the distance is set to 1/sqrt(n) where n is the number of nodes. Increase this value to move nodes farther apart.
Вы также можете попробовать изменить scale
:
scale (number (default: 1)) – Scale factor for positions. Not used unless fixed is None.
и seed
для детерминированных графиков:
seed (int, RandomState instance or None optional (default=None)) – Set the random state for deterministic node layouts. If int, seed is the seed used by the random number generator, if numpy.random.RandomState instance, seed is the random number generator, if None, the random number generator is the RandomState instance used by numpy.random.