我是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-vertice图,并在绘制该图形时出错。我以为是因为图表太大了。因此,我尝试用一个较小的图形来绘制,如下所示:
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不处理大图?
我正在使用MacOSXPython2.7.6。图像0.7.1。
发布于 2015-06-29 10:55:14
你的“小”图实际上包含91395个顶点。igraph中的顶点in是从0到you的-1整数,所以一旦创建了端点91394的边,就会创建91395个顶点(如果它们以前不存在)。而且,我非常肯定,绘制这么大的图形是不可能的,或者即使它成功了,你最终也只能得到一个巨大的发球,因为大多数布局算法都不是为了处理这种大小的图形而设计的。在igraph中,只有DrL算法才能适当地扩展到真正大的图形(或者是基于网格的Fruchterman布局),但是即使这样,您也需要对顶点和字体大小进行大量的调整,才能得到一些甚至是远程有用的东西。
https://stackoverflow.com/questions/31097094
复制相似问题