d3力导向图增加节点_在D3力导向图中突出显示所选节点,其链接及其子节点
在D3力導向圖中突出顯示所選節點,其鏈接及其子節點
我正在研究D3中的力導向圖。我想通過將所有其他節點和鏈接設置為較低的不透明度來突出顯示鼠標懸停節點,其鏈接及其子節點。
在這個例子中,http://jsfiddle.net/xReHA/,我能夠淡出所有的鏈接和節點然后淡化連接的鏈接,但是,到目前為止,我還沒有能夠優雅地淡化連接的節點,它們是當前鼠標懸停節點的子節點。
這是代碼中的關鍵功能:function?fade(opacity)?{
return?function(d,?i)?{
//fade?all?elements
svg.selectAll("circle,?line").style("opacity",?opacity);
var?associated_links?=?svg.selectAll("line").filter(function(d)?{
return?d.source.index?==?i?||?d.target.index?==?i;
}).each(function(dLink,?iLink)?{
//unfade?links?and?nodes?connected?to?the?current?node
d3.select(this).style("opacity",?1);
//THE?FOLLOWING?CAUSES:?Uncaught?TypeError:?Cannot?call?method?'setProperty'?of?undefined
d3.select(dLink.source).style("opacity",?1);
d3.select(dLink.target).style("opacity",?1);
});
};}
Uncaught TypeError: Cannot call method 'setProperty' of undefined當我嘗試在從source.target加載的元素上設置不透明度時,我收到錯誤。我懷疑這不是將該節點作為d3對象加載的正確方法,但我找不到另一種方法來加載它而不再遍歷所有節點以找到與鏈接的目標或源匹配的節點。為了保持性能合理,我不希望迭代超過所有節點。
但是,這并未顯示如何更改已連接的子節點。
任何有關如何解決或改善這一點的好建議都將被激烈地推崇:)
總結
以上是生活随笔為你收集整理的d3力导向图增加节点_在D3力导向图中突出显示所选节点,其链接及其子节点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenDRIVE编辑器Truevisi
- 下一篇: 今天,我们能否见证小米的伟大时刻——以专