2

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

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

Visjs、cytoscape 和 sigma 的问题

  • 他们很慢

vivaGraph 的问题

  • 我不能用 svgGraph 渲染 webglGraph,所以我不能有很多节点和边,并在边上放一个箭头。

vivaGraph的优势:

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

使用 visjs:

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

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

我有并且我想要这样的东西(用 visJs 完成): 我希望能够做到这一点:所有的网络 在此处输入图像描述

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

  2. 使用最少 10 000 个节点快速更新和生成图形。

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

所以我有两个问题:

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

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

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

4

1 回答 1

1

我用 VivagraphJS 的子库找到了一个类似问题的解决方案。

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

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

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

这些模块是:

有很多子模块,慢慢来看看。

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

  • ngraph.native:它使布局脱机,制作带有.bin扩展名的文件。
  • ngraph.offline.layout:它在你的图表加载之后和你的图表绘制之前进行布局。

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

结论

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

配置

你可以在youtube上找到一个视频

我的项目的源代码在这里,也许它可以帮助你。

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

于 2020-04-06T04:38:03.690 回答