我使用Flowingdata.com的this nice force layout创建网络图。d3.js强制布局在加载后自动缩放/缩放
我图目前显示与他们的关系,5和750之间的节点。它适用于一些自定义更改以适应我的需求。但有一件事我无法去工作。我有一个viewBox
与preserveAspectRatio
自动适合它所在的容器。但取决于节点的数量总是有一些节点围绕边缘(主要是顶部和底部)被切断。如果节点非常少,则会在中间显示它们,周围有巨大的空间(这是一个很大的容器)。
是否有任何方法可以自动缩放或缩放布局以自动适应?因此,一个大布局有点缩小,一个小布局放大。我有一个缩放事件设置,所以滚动和平移就像一个魅力。但它可以自动做到这一点,以适应内容?
的d3.js启动代码:
vis = d3.select(selection)
.append("svg")
.attr("viewBox", "0 0 " + width + " " + height)
.attr("preserveAspectRatio", "xMidYMid meet")
.attr("pointer-events", "all")
.call(d3.behavior.zoom().scaleExtent([.1, 3])
.on("zoom", redraw)).append('g');
听起来像是一种很好的开始方式。但是,您是从哪里获得缩放对象的?我试过d3.behavior.zoom和d3.event,但第一个没有scale()方法,后者说不能调用null的方法'scale'。 – DaFrenk 2013-04-26 14:15:55