2014-10-30 38 views
0

我试图绘制一个非常大的拥有大约5000个节点和100000条边的networkx图形。它代表了大城市的路网。我无法确定电脑是否挂着,或者它是否只是永久存在。它似乎挂在的代码行如下:在网络x中绘制非常大的图形

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

是否有更好的方法来绘制这样一个大型网络?

+0

如果是城市的道路网络,那么您可能有节点(路口)的位置是正确的?为什么不使用这些?您可能不会“看到”100万条边的力导向布局非常有趣。 – Aric 2014-10-30 02:57:48

回答

0

这是个好消息。是的,它没有损坏,它正在工作,即使你可以,你也不想等。 查看我对这个问题的回答,看看你的最终结果是什么样子。 Drawing massive networkx graph: Array too big

我认为春天的布局是一个n^3算法,这将需要125,000,000,000的计算来获得图形的位置。最好的办法是选择不同的布局类型或自己绘制位置。

因此,另一种方法是使用名为gephi的工具自行提取相关的点。

0

正如阿里克所说,如果你知道位置,那可能是最好的选择。

如果您只是知道距离,但没有插入位置,那么您可以进行一些计算,这样可以很好地重现位置(最多轮换一次)。如果您对距离进行主成分分析并将其投影到2维空间中,则估算地理位置可能会做得很好。 (这是我在线性代数类中看到过的一个例子)