我正在使用JSNetworkX进行图形探索和渲染。
JSNetworkX正在使用D3.js进行图形渲染。但是,当我处理大图形(json文件,大约5Mb)时,我想直接渲染这个图形,而不需要任何动画(所以,直接放置每个节点,而不是力吸引)。
我尝试在渲染后使用D3.layout.force().stop(),但没有效果。正因为如此,我认为它必须在jsnx.draw中完成,请参见下面的代码。
jsnx.draw(G, {
element: 'body',
d3: d3,
layout_attr: {
charge: -1500,
linkDistance: 1,
gravity: 1,
friction: 0.4,
alpha: -100
},
});
force = d3.layout.force();发布于 2013-07-08 20:21:05
不幸的是,你不能用当前的版本做到这一点。你需要一个力布局吗?或者你已经有每个节点的位置了吗?顺便说一句,如果你真的有一个很大的图,即使是静态布局也会很慢,因为你仍然有太多的SVG元素。下一个版本将包括为大型图表呈现的WebGL。
所以,我们暂时不能。
发布于 2015-10-31 00:49:03
从v0.3.4开始,jsnx.draw会返回强制布局对象,因此您可以先执行var force = jsnx.draw{/*...*/},然后执行force.stop()。
https://stackoverflow.com/questions/17293128
复制相似问题