2017-09-22 93 views
2

力佈局船體的滯後更新有關於我的D3力佈局的滯後更新時,它的數據集之間轉換:D3:在點擊

當從更多的鏈接環節少的數據集的數據集的變化,剩餘凸包唐」噸點擊消失。用戶需要點擊更新按鈕兩次,這個代碼運行:

pathg.selectAll("path").remove(); 

See JSFiddle here

後的1-Click從更多的船體數據集過渡到LESS船體數據集: Remnant convex hulls

什麼都不可能錯誤??它與D3有關嗎?

回答

2

的問題是在這裏:

而不是

return "M" + 
    d3.polygonHull(d.values.map(function(i) { return [i.x, i.y]; })) 
    .join("L") + "Z"; 

應該已經

var poly = d3.polygonHull(d.values.map(function(i) { return [i.x, i.y]; }));             
if (poly){ 
return "M" + poly.join("L") + "Z"; 
} 

原因的d3.polygonHull一些陣列返回null,導致錯誤。

關於pathg.selectAll("path").remove();您不需要這樣做,因爲exit會刪除不需要的鏈接。

工作小提琴here