Sur*_*raj 5 javascript json chap-links-library vis.js vis.js-network
我有一个大约1000个节点的网络.我已stabilize:true
和zoomExtentOnStabilize: true
.正在JSON
使用vis.network.gephiParser.parseGephi()
函数添加节点.当我试图绘制这张图时,即使在让它闲置数小时后它也永远不会稳定下来.但是,较少数量的节点在合理的时间内稳定下来.我在这里想念的是什么 有没有办法稳定大图.我甚至尝试将迭代次数设置为稳定到1000甚至更高.在此先感谢您的帮助.
PS:JSON没有节点的坐标.根据用户输入重新绘制图形.
编辑1:绘制的JSON数据可在http://pastebin.com/raw.php?i=Mzy4ncxw获得.由于CORS
错误,我无法在jsbin上创建可重现的示例.
JavaScript代码是:
message = JSON.parse(json_data); // json_data is sent from R server.
var nodes = new vis.DataSet();
var edges = new vis.DataSet();
var container = document.getElementById("div_graph");
var data = {
nodes: nodes,
edges: edges
};
var options = {
tooltip: {
delay: 50,
fontColor: "black",
fontSize: 14,
fontFace: "verdana",
color: {
border: "#666",
background: "#FFFFC6"
}
},
clustering: {
enabled: clusteringOn,
clusterEdgeThreshold: 50
},
hideEdgesOnDrag: true,
stabilize: true,
zoomExtentOnStabilize: true,
navigation: true,
keyboard: true,
edges: {
inheritColor: "to"
}
};
var network = new vis.Network(container, data, options);
nodes.clear();
edges.clear();
var parsed = vis.network.gephiParser.parseGephi(message);
nodes.add(parsed.nodes);
edges.add(parsed.edges);
network.redraw();
Run Code Online (Sandbox Code Playgroud)
Ale*_*xdm 10
我是visjs网络模块的开发人员.我们用它来稳定比1000个节点更大的集合.根据您提供的信息,我无法真正说出这里出了什么问题.我想邀请您在我们的github页面上提出问题.我们试图收集那里的所有问题.您可以共享您使用的代码或您的数据(标签为了匿名性而扰乱).
如果我猜测,1000节点系统将稳定大约3000次迭代.如果使用动态平滑曲线,则在添加支撑节点以定位曲线时,这会大大增加.我已经为3000个节点和25000个边缘系统使用了15000次迭代,即使这样它也没有完成但是我在那个时候停止了模拟.
当您说重新绘制用户输入时,是否在您看到拖动或缩放的意义上重新加载或重绘数据(类似于重绘功能)?
〜亚历克斯
编辑:
根据您的数据,我遇到了一些问题.
首先,您似乎不允许节点移动但也不提供其位置,从而导致四叉树构建过程中的无限递归.我将在未来使gephiParser更加健壮.请参阅此处了解gephi解析器的设置:http://visjs.org/docs/network.html#Gephi_import
其次,您使用动态平滑曲线和许多互连节点.每条平滑曲线都有一个不可见的支撑节点,有助于定位.这会使您的系统不稳定(看看它的稳定性以查看行为).在v4版本中,您可以设置自己的时间步以纠正此问题,但也可以更改物理设置.尝试configurePhysics选项,看看是否有帮助.您仍然可以使用静态平滑曲线来达到美学目的.
总结一下,我可以让你的系统在大约3000次迭代中使用静态平滑曲线稳定,大约需要一分钟.我在您的选项中禁用了群集.我建议你等待4.0版本使用群集,因为它会更加强大.
编辑2:
这是一个JSBin,显示您的代码和数据的工作稳定性(虽然已修改)
http://jsbin.com/tiwijixoha/5/edit?html,output
因此,如果你认为它没有稳定,它不会隐藏自己,只显示它准备好而不是永远不会达到稳定状态,那么问题是稳定只能通过setData()完成,而不是数据集更新.
在这个jsbin中,我也改变了你的边缘并改变了物理学以使其稳定.如果你对它不满意,你可以多玩一点.
归档时间: |
|
查看次数: |
4941 次 |
最近记录: |