编辑:不确定如何将 pack 与 force 结合起来,但这可能是一个解决方案
我昨天开始处理 D3 可视化,但我无法让所有内容都适合屏幕。
有时东西会跑出屏幕,有时半个圆圈在屏幕上一半不在屏幕上。
这是一个链接,您可以在其中查看可视化效果
http://codepen.io/anon/full/unkFc
这是实际的代码
http://codepen.io/anon/pen/unkFc
我认为问题可能出在我使用窗口大小作为尺寸,但可视化效果可能没有显示在整个窗口中?
请注意,我有 codepen,因为我需要它在 IE8 中工作,而 JSFiddle 不支持它
最佳答案
我认为问题在于该空间的元素太多。如果它们适合屏幕,它们就会重叠。
您可以乱用 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;
})
关于javascript - D3 强制布局 : Fit everything on a page?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17199368/