大佬教程收集整理的这篇文章主要介绍了d3.js – d3 Sankey – 从头到尾突出显示所有连接的路径,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
第一级突出显示可以轻松实现如下 –
在节点单击时,调用highlight_paths(1);
function highlight_paths(stroke_opacity) { return function(d,i){ d.sourceLinks.forEach(function(srcLnk){ d3.SELEct("#link"+srcLnk.id).style("stroke-opacity",stroke_opacity); }); d.targetLinks.forEach(function(srcLnk){ d3.SELEct("#link"+srcLnk.id).style("stroke-opacity",stroke_opacity); }); } }
但我还不能正确编写递归算法来获取每个连接源和放大器的所有sourceLinks和targetLinks.目标节点.
所有的想法都很感激!
谢谢.
纯粹基于此,这里是在两个方向上突出显示点击节点的所有路径的功能 – 前进(目标)和后退(源)
希望这有助于某人!
工作实例 – http://bl.ocks.org/git-ashish/8959771
function highlight_node_links(node,i){ var remainingNodes=[],nextNodes=[]; var stroke_opacity = 0; if( d3.SELEct(this).attr("data-clicked") == "1" ){ d3.SELEct(this).attr("data-clicked","0"); stroke_opacity = 0.2; }else{ d3.SELEct(this).attr("data-clicked","1"); stroke_opacity = 0.5; } var traverse = [{ linkType : "sourceLinks",nodeType : "target" },{ linkType : "targetLinks",nodeType : "source" }]; traverse.forEach(function(step){ node[step.linkType].forEach(function(link) { remainingNodes.push(link[step.nodeType]); highlight_link(link.id,stroke_opacity); }); while (remainingNodes.length) { nextNodes = []; remainingNodes.forEach(function(nodE) { node[step.linkType].forEach(function(link) { nextNodes.push(link[step.nodeType]); highlight_link(link.id,stroke_opacity); }); }); remainingNodes = nextNodes; } }); } function highlight_link(id,opacity){ d3.SELEct("#link-"+id).style("stroke-opacity",opacity); }
以上是大佬教程为你收集整理的d3.js – d3 Sankey – 从头到尾突出显示所有连接的路径全部内容,希望文章能够帮你解决d3.js – d3 Sankey – 从头到尾突出显示所有连接的路径所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。