Python проблема с сетевым краем и маркировкой узла - PullRequest
1 голос
/ 18 апреля 2020

Я новичок в Python, и я хотел нарисовать график заболеваемости, но с измененными метками. Я хочу, чтобы они начали маркировать узлы с «1», а не с «0». Также я хочу обозначить ребра следующим образом: если это между узлами «1» и «2», пометьте его как «12» или «1: 2». Заранее спасибо:)

im = np.array([[1, 1, 0, 0, 0, 0], [1, 0, 1, 1, 0, 0], [0, 1, 1, 0, 1, 0], [0, 0, 0, 1, 1, 1], [0, 0, 0, 0, 0, 1]])
am = (np.dot(im, im.T) > 0).astype(int)
np.fill_diagonal(am, 0)
K = nx.from_numpy_matrix(am)

pos = nx.spring_layout(K)
print(pos)

x=1
nx.relabel_nodes(K, lambda x: x + + 1)
nx.draw(K, pos, with_labels=True)

edge_labels = dict(((u, v), d) for u, v, d in K.edges(data=True))
nx.draw_networkx_edge_labels(K, pos, edge_labels = edge_labels, label_pos=0.5)

plt.show()

Example of desired edge labels

1 Ответ

0 голосов
/ 22 апреля 2020

Затем создайте ярлык, который вы хотите, так же, как вы сделали это до сих пор. Я разобью это до основных операций; Вы можете создать его снова, когда будете sh:

edge_labels = dict(((u, v), 
                    str(u+1) +":"+ str(v+1) +" "+ str(d))
                    for u, v, d in K.edges(data=True))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...