(Vis.js网络)从数据库中加载节点

时间:2019-11-22 22:45:13

标签: json dot vis.js gephi visnetwork

我很难理解如何使用vis.js网络以及动态生成的大量数据。从我在文档中阅读的内容来看,只有两种简单的方法可以导入数据:从gephi或点语言导入;对?这不是限制性吗?

我对gephi或点语言不了解,所以我决定使用我曾经使用过的mysql数据库。 因此,我使用php查询数据,并生成javascript以构建网络的节点和边缘。

但是到目前为止,我只有大约200个节点和边缘(这大约是我最终将拥有的数据的1/5),并且加载速度已经非常缓慢,似乎需要大量资源来显示网络(我的MacBook Pro每次打开网络页面时,我的MacBook Pro都会非常响亮),而vis.js应该又快又轻巧。

是因为所有节点和边都在页面代码中“写”了吗?还是我使用php查询mysql数据的事实?

我不拒绝使用json文件或点语的想法,我只是不知道该怎么做...但是如果它可以使我获得更好的性能,我想学习如何做吧。谁能详细解释这一切如何运作?并使用这两种方法中的一种,是否可以根据需要显示的数据为节点和边缘获得不同的大小和颜色(现在,在从数据库中查询数据之后,我就在php中做到了这一点)?

1 个答案:

答案 0 :(得分:0)

可以使用const object = JSON.parse(string);const string = JSON.stringify(object);对Vis Network所需的格式进行序列化和反序列化。无需使用Gephi或DOT即可简单地将数据存储在数据库中。

节点具有size属性可以更改大小,节点和边缘都具有color可以更改颜色。边缘也可以从连接的节点继承颜色。有关更多详细信息,请参见位于https://visjs.github.io/vis-network/docs/network/nodes.html的节点文档和位于https://visjs.github.io/vis-network/docs/network/edges.html的edge文档。

关于性能,如果没有一些示例代码和数据可玩,我无话可说。我尝试将超过200个节点放入由Vis Network构建的https://thomaash.github.io/me/#/canvas。正如我预期的那样,它可以立即加载并且可以正常工作,但是我不知道MacBook Pro与我的机器相比有多快。