我使用D3可重複使用的圖表框架來創建一個圓形熱圖表來顯示聲學數據。我無法成功更新數據。當我嘗試更新數據而不是更新現有g元素中的路徑時,它會繪製新的g元素。我創建了兩個圖表來查看我的可重用框架是否工作,並且僅在第一個圖表上測試數據更新。出於某種原因,當我嘗試更新第一個圖表時,顏色也會更改爲第二個圖表的顏色。這裏是一個問題的圖像: D3可重複使用的圓形熱圖表無法成功更新
我認爲這個問題可能與我如何創建svg和g元素有關,但我無法弄清楚具體問題是什麼。在我的可重複使用的模塊,這是我正在創建的SVG和元素和部分:
svg.enter().append("svg")
.classed("chart", true)
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom);
var g = svg.append("g")
.classed("circular-heat"+_index, true)
.attr("transform", "translate(" + parseInt(margin.left + offset) + "," + parseInt(margin.top + offset) + ")");
var segments = g.selectAll("path").data(data);
這裏是一個的jsfiddle我的代碼。
https://jsfiddle.net/jhjanicki/s3gsae5p/1/