【发布时间】:2013-06-25 08:58:30
【问题描述】:
我正在使用 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();
【问题讨论】:
-
很遗憾,当前版本无法做到这一点。您是否需要强制布局,或者您是否已经为每个节点设置了位置? FWIW,如果你真的有一个大图,即使是静态布局也会很慢,因为你仍然有太多的 SVG 元素。下一个版本将包括为大型图呈现的 WebGL。
-
噢...好的,明白了。我已经为每个节点(聚类)提供了近似位置。所以,我将使用 D3 静态图。对于 5mb 的图形,渲染大约需要 15 秒...但现在已经足够了...感谢您的评论和感谢 JSNetworkX :)(我会关注他的开发)非常感谢 :)
标签: graph d3.js force-layout jsnetworkx