如何用大量数据快速绘制社交网络(Visjs、cytoscape、sigma 和 vivaGraph)?

问题描述 投票:0回答:2

我必须创建一个包含大量数据的社交网络。我用的是visJs,网络很慢

我尝试了这些插件:Cytoscape、visJs、Vivagraph 和 sigma。

Visjs、cytoscape 和 sigma 的问题

  • 他们很慢

vivaGraph 的问题

  • 我无法使用 svgGraph 渲染 webglGraph,因此我无法拥有大量节点和边缘并在边缘上放置箭头。

vivaGraph的优势:

他真的很快,因为我可以用 webGl 渲染图形。但我不能或者我不知道如何使用这个插件添加图形。

使用visjs:

  • 我可以快速初始化图表,因为我可以将位置保留在数据库中并且可以停用物理。

问题是我无法进行任何更改,因为动态添加一个点时,必须重新计算所有其他点,并且对于 visJs 来说太长了。

我已经并且想要类似的东西(这是用 visJs 完成的): All the network enter image description here 我希望能够做到这一点:

  1. 修改节点和边的颜色、大小、名称等

  2. 以最少 10 000 个节点快速更新并生成图表。

  3. 布局与我展示的类似(如果可能的话按颜色分组)

所以我有两个问题:

  1. 有没有办法初始化后用visjs快速动态添加?

  2. 知道我至少有 10,000 个节点,如何快速生成图表?

是否有一种技术可以快速生成具有良好布局的图形?

javascript performance cytoscape.js vis.js vivagraphjs
2个回答
1
投票

我通过 VivagraphJS 的子库找到了类似问题的解决方案。

我的问题是建立一个非常大的图表(全部(或部分)交易比特币)。

我决定使用ngrah.*模块,这些模块针对速度进行了非常优化。

嗯,ngraph.* 模块的介绍位于自述文件中,但这些模块提供了在图表中进行个人渲染的可能性。

模块是:

子模块很多,慢慢看吧。

对于大图,您可以离线使用预计算布局,有两个模块可以使用:

您可以使用不同的子模块绘制图形,例如 ngraph.pixel

结论

我认为这是一个非常好的开源解决方案来绘制图表和大图,在下面我将发布我的子模块的配置,最后我将发布我的项目的链接和YouTube视频。

配置

您可以在 youtube

上找到视频

我的项目源码可以在这里找到,也许对你有帮助。

希望我的回答对你有帮助。


0
投票

非常好的内容,我正在尝试构建连接账户与交易的大型银行资金转账交易图,有数百万账户和数亿笔交易。有几个问题:-

  1. 您使用什么计算机来运行这 100 个节点?独立桌面还是客户端服务器?
  2. 您最终会得到带有 ngraph 扩展的 vivagraph 或 visjs 吗?
© www.soinside.com 2019 - 2024. All rights reserved.