Как наиболее эффективно использовать метки ребер при рисовании графа networkx? - PullRequest
0 голосов
/ 20 сентября 2019

Я хотел бы включить метки веса ребер при рисовании графика с использованием networkx.Я знаю, как объединить команду draw_networkx_edge_labels с draw_networkx_nodes и т. Д. Для этого, но мне интересно, есть ли способ просто добавить опцию, когда вместо этого просто используется draw_networkx.

Вот что у меня есть для простогоВзвешенная, ненаправленная сеть

import networkx as nx
A=npy.matrix([[0,7,7,0,0],[7,0,6,0,0],[7,6,0,2,1],[0,0,2,0,4],[0,0,1,4,0]])
G=nx.from_numpy_matrix(A)
nx.draw_networkx(G, weighted=True)

Я попытался создать словарь, ключи которого являются парами ребер, а значения - весами, а затем добавить этот параметр следующим образом:

edge_labels=dict([((u,v,),d['weight']) for u,v,d in G.edges(data=True)]) 
nx.draw_networkx(G, weighted=True,edge_labels=edge_labels)

, но этотоже не сработало.

1 Ответ

1 голос
/ 21 сентября 2019

Надеюсь, это может направить вас в правильном направлении:

import networkx as nx
import numpy as np
import matplotlib.pyplot as plt

A = np.matrix([[0,7,7,0,0],[7,0,6,0,0],[7,6,0,2,1],[0,0,2,0,4],[0,0,1,4,0]])
G = nx.from_numpy_matrix(A)
pos = nx.spring_layout(G)
edge_labels=dict([((u,v,),d['weight']) for u,v,d in G.edges(data=True)])

plt.figure()
nx.draw(G, pos, weighted=True)
nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels)

plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...