首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图形图:被杀9人

图形图:被杀9人
EN

Stack Overflow用户
提问于 2015-06-28 07:10:19
回答 1查看 660关注 0票数 1

我是igraph的新手,我试图绘制一个包含~450k顶点的图。

我开始做一些实验:

代码语言:javascript
复制
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图,并在绘制该图形时出错。我以为是因为图表太大了。因此,我尝试用一个较小的图形来绘制,如下所示:

代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-29 10:55:14

你的“小”图实际上包含91395个顶点。igraph中的顶点in是从0到you的-1整数,所以一旦创建了端点91394的边,就会创建91395个顶点(如果它们以前不存在)。而且,我非常肯定,绘制这么大的图形是不可能的,或者即使它成功了,你最终也只能得到一个巨大的发球,因为大多数布局算法都不是为了处理这种大小的图形而设计的。在igraph中,只有DrL算法才能适当地扩展到真正大的图形(或者是基于网格的Fruchterman布局),但是即使这样,您也需要对顶点和字体大小进行大量的调整,才能得到一些甚至是远程有用的东西。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31097094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档