d3力导向图增加节点_在D3力导向图中突出显示所选节点,其链接及其子节点
在D3力導(dǎo)向圖中突出顯示所選節(jié)點,其鏈接及其子節(jié)點
我正在研究D3中的力導(dǎo)向圖。我想通過將所有其他節(jié)點和鏈接設(shè)置為較低的不透明度來突出顯示鼠標(biāo)懸停節(jié)點,其鏈接及其子節(jié)點。
在這個例子中,http://jsfiddle.net/xReHA/,我能夠淡出所有的鏈接和節(jié)點然后淡化連接的鏈接,但是,到目前為止,我還沒有能夠優(yōu)雅地淡化連接的節(jié)點,它們是當(dāng)前鼠標(biāo)懸停節(jié)點的子節(jié)點。
這是代碼中的關(guān)鍵功能: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當(dāng)我嘗試在從source.target加載的元素上設(shè)置不透明度時,我收到錯誤。我懷疑這不是將該節(jié)點作為d3對象加載的正確方法,但我找不到另一種方法來加載它而不再遍歷所有節(jié)點以找到與鏈接的目標(biāo)或源匹配的節(jié)點。為了保持性能合理,我不希望迭代超過所有節(jié)點。
但是,這并未顯示如何更改已連接的子節(jié)點。
任何有關(guān)如何解決或改善這一點的好建議都將被激烈地推崇:)
總結(jié)
以上是生活随笔為你收集整理的d3力导向图增加节点_在D3力导向图中突出显示所选节点,其链接及其子节点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenDRIVE编辑器Truevisi
- 下一篇: 今天,我们能否见证小米的伟大时刻——以专