问题描述
我使用此https://observablehq.com/@d3/hierarchical-edge-bundling创建了边缘捆扎。假设我给存储链接的g提供了这样的类名称
const link = svg.append("g")
.attr("stroke",colornone)
.attr("fill","none")
.attr("class","linksClass")
.selectAll("path")
.data(root.leaves().flatMap(leaf => leaf.outgoing))
.join("path")
.style("mix-blend-mode","multiply")
.attr("d",([i,o]) => line(i.path(o)))
.each(function(d) { d.path = this; });
d3.select(".linksClass")selectAll("*").remove();
现在所有DOM元素都已删除,但该值仍存储在link
中。然后,我想遍历link
中的所有数据,并从中仅选择我需要的链接。我用这个
let linksToStay = link.filter((d) => {
if ( // my condition) {
return d;
} else return null;
});
所以linksToStay
仅包含我需要的链接,但是如何重绘它。
如果我使用d3.select(“ linksClass”)。selectAll(“ path”)。data(linksToStay)...则不起作用,因为数据需要一个数组,而linksToStay
不是一个数组。
是否有可能完成我想要的?我需要这样的东西
linksToStay.each((d) => { //draw d.path});
但我不确定如何编写其余代码。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)