Края не отображаются на графике с использованием Networkx - Python - PullRequest
0 голосов
/ 25 сентября 2018

Я строю ориентированный граф на python, используя networkx и matplotlib.Однако не все края видны.Узлы настолько близки друг к другу, что не видно пути между двумя узлами.

Код:

import networkx as nx

resultNodes = ['P0', 'P1', 'P2', 'P3', 'P4', 'P5', 'P6', 'P7', 'P8', 'P9']

resultEdges = [('P0', 'P4'), ('P0', 'P2'), ('P0', 'P1'), ('P1', 'P7'), ('P1', 'P8'),
               ('P1', 'P2'), ('P2', 'P3'), ('P4', 'P5'), ('P4', 'P6'), ('P5', 'P6'),
               ('P9', 'P2'), ('P9', 'P7'), ('P9', 'P1')]

G=nx.DiGraph()

G.add_nodes_from(resultNodes)
G.add_edges_from(resultEdges)

print("Nodes of graph: ")
print(G.nodes())
print("Edges of graph: ")
print(G.edges())

nx.draw(G,with_labels=True,font_size=15,node_color='yellowgreen',node_size=1000)

Output image shows no edge between P4,P5,P6 as those nodes are so close

1 Ответ

0 голосов
/ 25 сентября 2018

Вы можете рассчитать позиции узлов и перейти к функции рисования.См. Документ .

Пример:

pos = nx.drawing.layout.circular_layout(G)

nx.draw(G, pos=pos, with_labels=True, font_size=15,
        node_color='yellowgreen', node_size=1000)

circular_layout

...