我是 igraph
的新手,尝试绘制包含 ~450k
个顶点的图表。
我开始做一些实验:
import igraph
g = igraph.Graph([(0,1), (0,2), (2,3), (3,4), (4,2), (2,5), (5,0), (6,3), (5,6)])
igraph.plot( g, "result.pdf", layout = g.layout("kk") )
# works perfect.
然后,我加载了 ~450k
顶点图,但在绘制该图时出现错误。我认为这是因为图表太大。因此,我尝试使用较小的图表进行绘制,如下所示:
g = igraph.Graph( [(1, 63741), (2, 81483), (3, 91394), (4, 60469), (5, 60278), (6, 64544), (6, 73526), (8, 86588), (9, 61415)] )
igraph.plot( g, "result.pdf", layout = g.layout("kk") )
# does not work. produces:
# "Killed: 9"
但是,我对此图也遇到了同样的问题。
由于我能画小图而不能画大图,我不确定这是语法问题还是igraph不能处理大图?
我使用的是 Mac OS X。Python 2.7.6。 igraph 0.7.1。
最佳答案
您的“较小”图实际上包含 91395 个顶点。 igraph 中的顶点 ID 是从 0 到 |V|-1 的整数,因此一旦您创建端点为 91394 的边,您也就创建了 91395 个顶点(如果它们之前不存在)。另外,我很确定绘制如此大的图形无法开箱即用,或者即使它有效,最终也只会得到一个巨大的毛球,因为大多数布局算法并不是为处理这种图形而设计的。尺寸。在 igraph 中包含的算法中,只有 DrL 算法可以正确缩放到真正大的图(或者可能是基于网格的 Fruchterman-Reingold 布局),但即便如此,您也需要对顶点和字体大小进行大量调整才能获得甚至有点用处的东西。
关于python - igraph 绘制图表 : Killed 9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31097094/