为什么我的networkx图在节点之间不显示任何边缘?

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)