我有一个包含690,024个节点和7,398,042个边的图,并且想要将其可视化。我使用了graphviz的dot和gephi,但由于内存不足而终止。有没有办法解决这个问题?
答案 0 :(得分:15)
Gephi根据JVM中分配给它的内存量有一个限制。选中此http://gephi.org/users/requirements/进行更改。
我建议使用Stanford Network Analysis Platform (SNAP) 。
核心SNAP库是用C ++编写的,并针对最高性能和紧凑图形表示进行了优化。它可以轻松扩展到具有数亿个节点和数十亿边缘的大规模网络。它可以有效地处理大型图形,计算结构属性,生成规则和随机图形,并支持节点和边缘上的属性。除了对大图的可扩展性之外,SNAP的另一个优势是图形或网络中的节点,边和属性可以在计算过程中动态改变。
答案 1 :(得分:4)
我们一直在构建http://www.github.com/graphistry/pygraphistry以支持大多数浏览器和笔记本电脑。我们的想法是使用WebGL渲染大图(平移/缩放/等),并将大部分实时计算(布局,过滤器等)卸载到GPU云。它与Gephi和Cytoscape类似,但更侧重于扩展到大图并简化数据分析,并集成到Web应用程序和笔记本环境中。
答案 2 :(得分:2)
如果需要可视化此尺寸图表的所有边缘之间的关系,您可能需要考虑Hive plots。如果需要构建一个显示节点和边的图形,您可能需要尝试igraph,它具有Python和R接口。我使用igraph到R构建了一些非常大的图形,但我不记得内存要求(这可能取决于数据)。
答案 3 :(得分:1)
LGL曾经在这种情况下用于静态可视化 - 至少在几年前:)
http://lgl.sourceforge.net/ http://www.ncbi.nlm.nih.gov/pubmed/15184029?dopt=Abstract
在论文中: http://bmcbioinformatics.biomedcentral.com/articles/10.1186/1471-2105-7-276 数据具有相当数量的节点和边缘。