我有一个正常的序列sunburst jsfiddle,因为你可以正常工作。
我正在尝试改进这种旭日形以获得缩放技术。
使用以下代码,我可以进行一步缩放,
var path = vis.data([json]).selectAll("path")
.
.
.on("click", click)
.each(stash);
点击功能是:
function click(d)
该代码还具有如下所示的 arctween、stash 和 reposition 功能
function arcTween(a){
var i = d3.interpolate({x: a.x0, dx: a.dx0}, a);
return function(t) {
var b = i(t);
a.x0 = b.x;
a.dx0 = b.dx;
return arc(b);
};
}
function stash(d) {
d.x0 =0;// d.x;
d.dx0 =0;// d.dx;
}
function reposition(node, x, k) {
node.x = x;
if (node.children && (n = node.children.length)) {
var i = -1, n;
while (++i < n) x += reposition(node.children[i], x, k);
}
return node.dx = node.value * k;
}
这是我的带有缩放JSfiddle的旭日形首饰的最终版本
问题是:如何使序列 sunburst 与缩放方法一起使用?以及如何停止 zoomin 和 o 返回为 [bilevel 或 zoomable sunburst]