http://jsfiddle.net/z25SU/如何更新D3餅圖
對不起,我意識到人們對如何做到這一點噸的材料,我已經受夠了一些教程,看着雖然一些官方的GIST(像this one),但我仍然無法弄清楚。
正如你將在我的jsfiddle中看到的那樣,圖表用第一組數據呈現 - 但是當我單擊更新按鈕時圖表根本不會改變。
update方法確實火,路徑‘d’值是更新(通過觀看在Firebug這些元素作爲確認) - 它只是路徑新‘d’的價值觀是相同的舊的。
我需要在這裏做些什麼改變?幾個小時以來,我一直在對着這堵牆猛撞我的頭,嘗試文檔和教程所說的每一個不同的東西 - 我無法弄清楚。
謝謝!
而且,這裏的更新方法 - 有人可能會發現問題,甚至不必看小提琴...
function updateData(dataset){
//console.info(dataset);
// Set Data
var allSlices = slicesGroup
.selectAll(".slice")
.data(pie(dataset));
// Create New Slices
var newSlices = allSlices
.enter()
.append("g")
.attr("class", "slice");
newSlices
.append("g")
.attr("class", "outer")
.append("path");
newSlices
.append("g")
.attr("class", "inner")
.append("path");
// Update All Slices
allSlices
.selectAll(".outer")
.selectAll("path")
.attr("d", outerArc);
allSlices
.selectAll(".inner")
.selectAll("path")
.attr("d", innerArc);
//console.log(newSlices);
//console.log(allSlices);
// Remove Old Slices
allSlices.exit().remove();
};
Arg!我知道這將是簡單的:P謝謝你的答案,尤其是解釋! – encoder