我有sunburst可視化基本上具有相同的代碼結構的this CodePen(來自this question on stackoverflow。我試圖也包括不僅可以放大,但也可以放大在sunburst內(當點擊到sunburst的中間)我已經嘗試了以下步驟,但這些都沒有工作到目前爲止,我迷失在如何做到這一點(道歉,如果這是一件非常容易的事情要做,我對JS很新穎。)如何在可縮放的森伯斯特圖表中使用CSV數據?
在開頭包括:
var x = d3.scale.linear()
.range([0, 2 * Math.PI]);
var y = d3.scale.linear()
.range([0, radius]);
更改弧參數:
var arc = d3.svg.arc()
.startAngle(function(d) { return Math.max(0, Math.min(2 * Math.PI, x(d.x))); })
.endAngle(function(d) { return Math.max(0, Math.min(2 * Math.PI, x(d.x + d.dx))); })
.innerRadius(function(d) { return Math.max(0, y(d.y)); })
.outerRadius(function(d) { return Math.max(0, y(d.y + d.dy)); });
改變了arcTween()
功能:
function arcTween(d){
var xd = d3.interpolate(x.domain(), [d.x, d.x + d.dx]),
yd = d3.interpolate(y.domain(), [d.y, 1]),
yr = d3.interpolate(y.range(), [d.y ? 20 : 0, radius]);
return function(d, i) {
return i
? function(t) { return arc(d); }
: function(t) { x.domain(xd(t)); y.domain(yd(t)).range(yr(t)); return arc(d); };
};
};
但是,這是行不通的。
任何人都可以幫我嗎?
看起來你從[這裏](http://bl.ocks.org/mbostock/4348373)檢索到了arcTween代碼...有沒有理由不使用這個例子作爲你的基礎?你是否試圖維持懸停行爲? –
另外一個完整的筆或小提琴的代碼將是有幫助的 –
更新的答案是否適合你?如果它確實請接受它;) –