我有两个 list 。其中一个具有这种数据结构:在每一行中,第一个元素是 ID,第二个元素是电子邮件地址。
['0', 'kvogel@politico.com']
['1','ababab@politico.com']
第二个列表是“谁写给谁”列表,在每一行中,第一个 ID 号是发送者,第二个是接收者
['0', '4']
['0', '6']
['1', '4']
顺便说一句,括号实际上不是列表的一部分。这是我的 jupyter 笔记本输出。第一个列表大约有 2000 行,第二个列表有 40000 行。在下面的代码中,我从第一个列表中添加节点 - 在这种情况下是电子邮件地址。然后我遍历第二个列表并使用给定的 ID 在节点之间创建边。
first =-1
second =-1
for row in idsList:
g.add_nodes_from(row[1])
for row in dncList:
for i in range (len(idsList)):
if (row[0]==idsList[i][0]):
first=i;
elif(row[1]==idsList[i][0]):
second=i
g.add_edge(idsList[first][1],idsList[second][1])
nx.draw_networkx(g,with_labels = False, node_size = 30)
plt.show()
但是,我看不到节点之间的边缘。上面的代码产生下图。用
edges()
打印给了我所有边的列表,所以没问题。我在这里错过了什么?最佳答案
您的图形目前看起来是无向的。您应该更改它并使其成为有向图,除非您应该使其成为无向图。那应该解决它。
g = nx.DiGraph()
关于python - 为什么我的 networkx 图不显示节点之间的边?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46704535/