我有一個鄰接二維陣列,它有回圈,意味著元素 $a_ii$ 不為零。當試圖用它來繪制它時,networkx它會弄亂并出現額外的節點!對于如何解決這個問題,有任何的建議嗎?這是一個小的作業示例。
import networkx as nx
import numpy as np
import matplotlib.pyplot as plt
A = np.array([[4, 5, 6],[2, 1, 3],[5, 10, 3]])
G = nx.from_numpy_matrix(A, create_using=nx.DiGraph)
layout = nx.spring_layout(G)
nx.draw_circular(G, with_labels=True)
for edge in G.edges(data="weight"): # edges thickness to be based on the weight
nx.draw_networkx_edges(G, layout, edgelist=[edge], width=edge[2])
plt.show()

uj5u.com熱心網友回復:
每當您的布局未對齊時,請檢查每個對 draw 的呼叫是否使用相同的pos引數。在您的 for 回圈中,您使用的是非回圈的。但是您還創建了 2 個圖形,因為draw_circular還繪制了一個圖形。
嘗試這樣的事情。此外,您不一定需要 for 回圈來執行此操作。
pos = nx.circular_layout(G)
wt = widths = nx.get_edge_attributes(G, 'weight')
nx.draw_networkx_edges(G, pos, width=list(wt.values()))
nx.draw_networkx_nodes(G, pos)
nx.draw_networkx_labels(G, pos)
輸出:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/513166.html
標籤:Python循环网络x
