networkx 图的默认顺序?

问题描述

我最近使用 networkx.adjacency_matrix(G) 为图生成邻接矩阵。当我绘制邻接矩阵 (1) 时,我很惊讶它显示了这些不同的集群。当按照我将它们添加到图 (2) [相当于 networkx.adjacency_matrix(G,sorted(list(G.nodes())] 的顺序绘制节点顺序时,这些集群就会消失。

networkx 生成邻接矩阵时认的排序协议是什么?这似乎没有记录。

认“顺序”:

enter image description here

节点/边添加到图中的顺序:

enter image description here

解决方法

结果可能取决于 Arya 提出的 Python 版本,主题是关于 dicts 的默认排序。看看这里:Are dictionaries ordered in Python 3.6+?

adjacency_matrix的代码来看,会带你到to_scipy_sparse_matrix,使用的默认节点顺序是list(G)