2017-12-07 4 views
0

해당 노드를 클릭하면 sankey 다이어그램에서 특정 노드에 연결되지 않은 모든 링크를 페이드 아웃하고 싶습니다. 노드에 연결되어 있지 않은 경우 sankey 링크가 사라집니다.

 var link = svg.append("g").selectAll(".link") 
      .data(energy.links) 
      .enter().append("path") 
      .attr("class", "link") 
      .attr("d", path) 
      .style("stroke-width", function(d) { return 16; }) 
      .style("stroke", function(d){return d.color;}) 
      .sort(function(a, b) { return b.dy - a.dy; }); 

이 결과는 노드를 클릭 할 때 모든 연결되지 않은 링크가 사라질 것을해야한다.

이 작업을 수행하는 데 필요한 논리를 생각할 수 없습니다.

답변

0

링크 개체에는 원본 및 대상 노드 개체가 있습니다. 모든 링크를 선택하고 노드를 사용하는 ID가 클릭 된 노드와 일치하는 경우이를 기반으로 불투명도를 지정합니다. 예를 들어 'name'이 고유 ID 인 경우

node.on("click", function(d) { 
    link.style("opacity", function(l) { 
     if (l.source.name == d.name || l.target.name == d.name) { 
     return 1 
     } else { 
     return 0.1 
     } 
    }) 
}) 
+0

감사합니다. Tom. 그것은 완벽하게 작동했고 내 sankey 다이어그램으로하고 싶은 다른 것들에 대해 약간의 통찰력을주었습니다. –

관련 문제