我正在尝试使用vis.js 4.21.0
绘制一个相当大的network(即〜1k节点和〜1k边缘)。这是我的选项对象:
var options = {
autoResize: true,
height: '400px',
clickToUse: false,
layout: {
hierarchical: {
direction: 'UD',
sortMethod: 'directed',
}
},
physics: {
stabilization: false,
barnesHut: {
gravitationalConstant: -80000,
springConstant: 0.001,
springLength: 200
}
},
nodes: {
shape: 'dot',
size: 20,
font: {
size: 15,
color: '#ffffff'
},
borderWidth: 2
},
groups: groups,
};
问题在于,渲染最多需要4分钟的时间(请参阅此simplified JSFiddle)。在this example(比矿井大得多)中,网络几乎是即时呈现的。
如何加快图表的渲染过程?
答案 0 :(得分:2)
等等,您的小提琴没有您在帖子中提到的所有选项。例如,几分钟后根本不会显示网络,但是如果您添加physics: { stabilization: false }
,则会立即显示该网络(尽管此时它不是静态的并且会慢慢放松)。此外,将barnesHut: { ... }
添加到physics
并调整springConstant
会改变松弛速度。
但这是一个棘手的部分:比较您与vis.js 4.21.0所拥有的未松弛树(与stabilization: false
)和您与get所拥有的未松弛树与4.19.1!看起来好多了:
比这个烂摊子
这是reported earlier,可能值得更多挖掘,但是我可以肯定地说的是4.19.1使初始树变得更漂亮,甚至在放松之前也能看到东西。使用此版本,您甚至可以转到physcis: false
并获取此信息:
我会考虑使用这种方法,尽管它有缺点:
具有物理性质的版本在某种程度上也遭受了痛苦,所以...