我很难理解如何使用vis.js网络来处理大量动态生成的数据。根据我在文档中读到的内容,只有两种简单的方法可以导入数据:从gephi或使用dot语言;对吗?这是不是有点限制?
我对gephi或dot语言一无所知,所以我决定使用我习惯使用的mysql数据库。所以我用php查询我的数据,并生成javascript来构建网络的节点和边。
但到目前为止,我只有大约200个节点和边(相当于我最终拥有的数据的1/5 ),而且它的加载速度已经非常慢,似乎需要很多资源来显示网络(我的MacBook专业版在任何时候打开网络页面时都会变得非常响亮),而vis.js应该是快速和轻量级的。
这是因为所有的节点和边都是在页面的代码中“写”的吗?或者是因为我使用php来查询mysql数据?
我没有拒绝使用json文件或点语言的想法,我只是不知道如何做到这一点…但如果它能让我表现得更好,我想学习如何做到这一点。有人能详细解释一下它是如何工作的吗?使用这两种方法中的任何一种,我是否可以根据需要显示的数据为节点和边获取不同的大小和颜色(现在我在从数据库查询数据后在php中执行此操作)?
发布于 2019-11-29 05:27:47
Vis网络所需的格式可以使用 const object = JSON.parse(string); 和 const string = JSON.stringify(object); 进行序列化和反序列化。不需要使用Gephi或DOT在数据库中简单地存储数据。
const object = JSON.parse(string);
const string = JSON.stringify(object);
节点具有更改大小的 size 属性,并且节点和边都具有更改颜色的 color 。边还可以从连接的节点继承颜色。有关更多详细信息,请参阅位于 https://visjs.github.io/vis-network/docs/network/nodes.html 的节点和位于 https://visjs.github.io/vis-network/docs/network/edges.html 的边的文档。
size
color
关于性能,如果没有一些示例代码和数据可以使用,我就不能告诉您太多。我试着把200多个节点放到 https://thomaash.github.io/me/#/canvas 上,它是用Vis网络构建的。正如我所期望的那样,它可以立即加载并正常工作,但我不知道与我的机器相比,MacBook专业版有多快或多慢。
https://stackoverflow.com/questions/59002731
相似问题