D3 Force Layout:适合页面上的所有内容?

时间:2013-06-19 19:10:13

标签: javascript d3.js resize visualization force-layout

编辑:不确定如何将包与力量结合起来,但这可能是一个解决方案

我昨天开始使用D3可视化工作,但我无法将所有内容都放到屏幕上。

有时事情会从屏幕上消失,有时一半的圆圈在屏幕上,一半在屏幕外。

这是一个可以查看可视化的链接

http://codepen.io/anon/full/unkFc

这是实际的代码

http://codepen.io/anon/pen/unkFc

我认为问题可能是我正在使用尺寸的窗口尺寸,但可能是整个窗口中没有显示可视化效果?

请注意,我有codepen因为我需要这个在IE8中工作而JSFiddle不支持

1 个答案:

答案 0 :(得分:0)

我认为问题在于空间的元素太多了。如果它们适合屏幕,它们将重叠。

您可以使用force.gravity()和force.size()来尝试找到完美的平衡点。见:http://tributary.io/inlet/5817500(第73和74行混乱)

您还可以通过圆圈数和窗口大小来缩放圆形大小,这样无论这两个参数如何,布局的空间都是相同的。

类似

.attr("r", function(d) { 
    return d.count/nodes.length * Math.min([width,height])/someScaleFactor;
})