art*_*tre 5 python graph networkx
我有两个清单。其中一个具有这种数据结构:在每一行中,第一个元素是ID,第二个是电子邮件地址。
['0', 'kvogel@politico.com']
['1','ababab@politico.com']
Run Code Online (Sandbox Code Playgroud)
第二个列表是“谁写给谁”列表,在每一行中,第一个ID号是发送方,第二个ID是接收方
['0', '4']
['0', '6']
['1', '4']
Run Code Online (Sandbox Code Playgroud)
顺便说一句,方括号实际上不是列表的一部分。这是我的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()
Run Code Online (Sandbox Code Playgroud)
但是,我看不到节点之间的边缘。上面的代码产生下图。使用进行打印可以edges()得到所有边缘的列表,因此没有问题。我在这里想念什么?
小智 7
您的图表目前看起来是无向的。您应该更改它并使其成为有向图,除非您应该使其成为无向图。那应该可以解决它。
g = nx.DiGraph()
Run Code Online (Sandbox Code Playgroud)