python - 为什么我的 networkx 图不显示节点之间的边?

标签 python graph networkx

我有两个 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() 打印给了我所有边的列表,所以没问题。我在这里错过了什么?

Graph

最佳答案

您的图形目前看起来是无向的。您应该更改它并使其成为有向图,除非您应该使其成为无向图。那应该解决它。

g = nx.DiGraph()

关于python - 为什么我的 networkx 图不显示节点之间的边?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46704535/

相关文章:

python - 使用 LabelEncoder 转换数据

c++ - 如果图形以邻接表的形式给出,如何扫描用户的输入?

python - 使用 vis.js 可视化 networkx

python - Pycharm (JetBrains) 无法修改我的 macbook 上的只读目录

python - 如何量化模型预测是否与 Python 中的预期值接近?

最大加权生成弱连通DAG的算法

python - 无向图的 Networkx has_edge 只计算一次

python - 如何使用networkx在两个图之间执行树交叉?

Python:如何等到子进程完成初始化

algorithm - 使用Prim算法求有向图的MST