我有a test site我从我自己的数据构建d3-based force-directed network graph。更改d3 SVG画布的缩放级别?
如果我选择大约五六个基因,我的图中的节点开始在画布外绘制。
我需要调用d3 API的哪些部分来控制缩放级别,以便节点不会从画布边缘消失?
如果可以的话,我会非常感谢所有简要解释概念的代码片段,除非实现相当简单。谢谢你的建议。
我有a test site我从我自己的数据构建d3-based force-directed network graph。更改d3 SVG画布的缩放级别?
如果我选择大约五六个基因,我的图中的节点开始在画布外绘制。
我需要调用d3 API的哪些部分来控制缩放级别,以便节点不会从画布边缘消失?
如果可以的话,我会非常感谢所有简要解释概念的代码片段,除非实现相当简单。谢谢你的建议。
D3允许使用缩放功能,实现起来相当容易。你只需要将你的图形包裹在一个叫做“视口”的“g”元素中。然后,你将分配给SVG元素的缩放事件:
svg.call(d3.behavior.zoom().on("zoom", redraw))
以下功能:
function redraw() {
d3.select("#viewport").attr("transform",
"translate(" + d3.event.translate + ")"
+ " scale(" + d3.event.scale + ")");
}
var x, y, k;
if (d && centered !== d) {
var centroid = path.centroid(d);
x = centroid[0];
y = centroid[1];
k = 4;
centered = d;
} else {
x = w/2;
y = h/2;
k = 1;
centered = null;
}
写变焦功能下面的代码 svg.attr( “改造” ,“translate(”+ w/2 +“,”+ h/2 +“)标尺(”+ k +“)translate(”+ -x +“,”+ -y +“)”);
绝对规模你卡恩使用此代码 这将是有益的地图缩放和平移的
可能重复[有没有一种方法可以放大到使用D3做了图形布局?](HTTP://计算器.COM /问题/ 7871425/IS-有-A-方式对放大成-A-图的布局完成,使用-D3) – 2012-04-04 22:12:02