networkx: как контролировать радиус round_layout ()? - PullRequest
2 голосов
/ 08 июля 2011

Я работаю со случайными графиками (созданными с nx.gnm_random_graph()).Единственный аккуратный способ выложить это с круговой разметкой.Networkx предоставляет как минимум два эквивалентных способа сделать это, но я не знаю, как контролировать радиус круга с помощью одного из них:

nx.draw_networkx(G, pos=nx.circular_layout(G))
nx.draw_circular(G) 

Кто-нибудь знает, как увеличить радиус / диаметр, чтобыузлы не так сжаты вместе?

Спасибо, Пол

Ответы [ 2 ]

2 голосов
/ 09 июля 2011

Вы можете получить эффект изменения радиуса, либо уменьшив размер узла (и шрифта), либо увеличив размер фигуры. Вот пример, показывающий оба способа улучшить круговую разметку графа цикла с перекрывающимися узлами.

import pylab
import networkx as nx
G=nx.cycle_graph(80)
pos=nx.circular_layout(G)
pylab.figure(1)
nx.draw(G,pos)
pylab.figure(2)
nx.draw(G,pos,node_size=60,font_size=8)
pylab.figure(3,figsize=(12,12))
nx.draw(G,pos)
pylab.show()
0 голосов
/ 02 декабря 2015

Ну, радиус может управляться параметром 'scale', равным nx.circular_layout().И вы можете найти больше на https://networkx.github.io/documentation/latest/reference/generated/networkx.drawing.layout.circular_layout.html

...