可视化具有一百万个顶点的图形


17

什么是用于可视化(绘制顶点和边)具有1000000个顶点的图的最佳工具?图中大约有50000条边。而且我可以计算单个顶点和边的位置。

我正在考虑编写一个程序来生成svg。还有其他建议吗?


你可以尝试的Graphviz ...不知道,如果它扩展到数以百万计的顶点....
Debasis

:希望在这个问题的答案可以摸到像这些图表是如何作了medium.com/i-data/...
shadowtalker

您好@Cici,通常在本网站和其他SE网站上不建议使用推荐工具的问题,因为它们引起了很多意见。
肖恩·欧文

Answers:


19

我还建议使用Gephi软件(https://gephi.github.io),它似乎非常强大。使用一些额外的信息Gephi大型网络,可以发现在这里,更普遍的,在这里Cytoscapehttp://www.cytoscape.org)是的替代方案Gephi,是另一个用于复杂网络分析和可视化的流行平台。

如果您想在R,Python或C / C ++中以编程方式使用网络(包括可视化),则可以检查igraph库的集合。说到R,您可能会发现以下有趣的博客文章:将R与Cytoscape一起使用http://www.vesnam.com/Rblog/viznets1)和将R与Gephi一起使用http://www.vesnam.com/) Rblog / viznets2)。

有关网络分析和可视化软件的广泛列表(包括一些比较和评论),您可能需要检查以下页面:1)http://wiki.cytoscape.org/Network_analysis_links;2)http://www.kdnuggets.com/software/social-network-analysis.html ; 3)http://www.activatenetworks.net/social-network-analysis-sna-software-review


8

https://gephi.github.io/表示它可以处理100万条边。如果您的图形具有1000000个顶点,并且只有50000条边,那么您的大多数顶点将没有任何边。

实际上,Gephi规范是您的示例的对偶:“网络多达50,000个节点和1,000,000个边缘”


8

我认为,这Gephi可能会遇到内存不足的问题,您至少需要8Gb的RAM。尽管边缘的数量不是非常巨大。

在这种情况下,可能更合适的工具是GraphViz。它是用于网络可视化的命令行工具,并且可能会更容忍图形大小。而且,正如我记得的那样,GraphViz可以使用预先计算的坐标来简化计算。

我试图找到使用GraphViz大型图形的真实示例,但没有成功。尽管我发现了关于计算科学的类似讨论。


4

回报:我结束了对graphml的编码并使用yEd进行可视化(只是因为我熟悉这种组合。我敢打赌gephi或graphviz可以正常工作,甚至可能更好)。由于我计算了所有节点的位置,因此内存并不是一个大问题。与编码svg相比,对graphml进行编码要容易一些,因为我不必明确指定边的位置。



2

我建议使用Graphexp。Gephi高度依赖计算机的RAM,这显然受到限制。另一方面,Graphexp仅显示有限数量的节点,您可以通过这些节点导航到其他节点。我已经使用Graphexp作为UI以及具有HBase作为后端存储的Janusgraph可视化了具有7亿个顶点的图形。https://github.com/bricaud/graphexp


真?对我来说,当尝试显示100个以上的顶点时,它会开始窒息
BrDaHa

速度主要取决于后端数据库和计算能力。Graphexp仅是UI。
Sandeep Kumar

我意识到了这一点,但是通过“扼流圈”,我的意思是当为屏幕上出现的节点设置动画时,刷新率将降至1-2 fps。可能需要注意的是,这是在Safari的最新版本上
BrDaHa

0

看一下Graphistry,他们可以处理1Mil节点和边。


是的,Graphistry是唯一用于大型图形的交互式视觉工具,因为它可以为您在GPU上端对端运行。
Leo Meyerovich
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.