在networkx中绘制一个非常大的图

3

我正在尝试绘制一个非常大的网络图,其中包含大约5000个节点和100000条边。它代表了一座大城市的道路网络。我无法确定计算机是挂起还是只是需要很久时间才能完成绘制。似乎程序卡在以下代码行:

##a is my network
pos = networkx.spring_layout(a)

也许有更好的方法来绘制这样一个庞大的网络吗?

如果是城市的道路网络,那么你可能有节点(交叉口)的位置,对吧?为什么不使用它们呢?使用力导向布局处理1000000条边可能不会得到太多有趣的结果。 - Aric
2个回答

1
这里有个好消息。没错,它没有损坏,它一直在工作,即使你能等待,你也不想等待。 查看我的答案以查看最终结果的样子。 Drawing massive networkx graph: Array too big 我认为弹簧布局是一个n^3的算法,需要进行1250亿次计算才能得到您的图形的位置。对您最好的选择是选择不同的布局类型或自己绘制位置。
因此,另一个选择是使用一个名为gephi的工具自己提取相关点。

0
正如Aric所说,如果您知道这些位置,那可能是最好的选择。
相反,如果您只知道距离,但没有要插入的位置,则可以进行某些计算,可以很好地复制位置(最多旋转)。 如果对距离进行主成分分析并投影到2个维度,则可能会很好地估计地理位置。(这是我在一次线性代数课上看到的例子)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接