javascript - D3 强制布局 : Fit everything on a page?

标签 javascript d3.js resize visualization force-layout

编辑:不确定如何将 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/

相关文章:

javascript - 围绕中心点绘制多边形

javascript - d3 - 将单线添加到分组条形图中

qt - 当子窗口隐藏时调整 qt 小部件的大小

Cocoa - 以编程方式垂直拉伸(stretch) NSView,向下移动其后的所有内容

javascript - 调整窗口大小后触发函数

javascript - 输入文件字段到输入文本字段

javascript - 使用 jQuery 或 javascript 从字符串中删除特殊字符(& 符号)

javascript - 如何翻译 svg 元素本身?

javascript - 页面加载时检查按下的鼠标按钮

javascript - 随着时间的推移自动化输入 slider