1

我正在使用 JSNetworkX 进行图形探索和渲染。

JSNetworkX 使用 D3.js 进行图形渲染。但是,当我使用大图(大约 5Mb 的 json 文件)时,我想直接渲染该图而不使用任何动画(因此,直接放置每个节点而无需强制吸引)。

我尝试在渲染后使用 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();
4

2 回答 2

0

不幸的是,您不能使用当前版本执行此操作。您是否需要强制布局,或者您是否已经为每个节点设置了位置?FWIW,如果你真的有一个大图,即使是静态布局也会很慢,因为你仍然有太多的 SVG 元素。下一个版本将包括为大图呈现的 WebGL。

所以,我们暂时不能。

于 2013-07-08T12:21:04.773 回答
0

从 v0.3.4 开始,jsnx.draw 返回强制布局对象,因此您可以执行var force = jsnx.draw{/*...*/}then force.stop()

于 2015-10-30T16:49:03.267 回答