Как я могу указать точный размер вывода для моего графика networkx?

http://imgur.com/7wiRw.png

Вышеупомянутый результат моего текущего графика. Тем не менее, мне еще предстоит управлять тем, чего я пытаюсь достичь. Мне нужно вывести мой график в большем размере, чтобы можно было легко просматривать каждый node/edge.

Я пробовал nx.draw(G, node_size=size), но это только увеличивает размер узлов, а не расстояние между узлами и ребрами.

Ответ 1

Вы можете попробовать либо небольшие узлы/шрифты, либо большие холсты. Вот как это сделать:

import matplotlib.pyplot as plt
import networkx as nx
G = nx.cycle_graph(80)
pos = nx.circular_layout(G)
# default
plt.figure(1)
nx.draw(G,pos)
# smaller nodes and fonts
plt.figure(2)
nx.draw(G,pos,node_size=60,font_size=8) 
# larger figure size
plt.figure(3,figsize=(12,12)) 
nx.draw(G,pos)
plt.show()

Ответ 2

Так как кажется, что ваш сетевой макет слишком "грязный", вы можете попробовать разные алгоритмы компоновки графа и посмотреть, какой из них вам подходит.

>>> nx.draw(G)  
>>> nx.draw_random(G)  
>>> nx.draw_circular(G)  
>>> nx.draw_spectral(G)  
>>> nx.draw_spring(G)  

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