当我的D3力布局在数据集之间转换时有一个滞后更新:
当数据集从MORE链接更改为LESS链接数据集时,剩余凸包在1次单击时不会消失。用户需要单击两次更新按钮才能运行此代码:
pathg.selectAll("path").remove();
从MORE船体数据集到LESS船体数据集的1-Click过渡后:
什么可能是错的?它与D3有关吗?
答案 0 :(得分: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();
您不需要这样做,因为退出会删除不需要的链接。
工作小提琴here