2015-04-07 42 views
0

我正在嘗試使用d3網絡,並在here中有一個非常有趣的示例。它以不同顏色顯示不同組之間的關係。現在我想通過着色鏈接來改變它。理想情況下,我希望鏈接顏色因不同的組而有所不同。我可以通過修改該鏈接中提供的js代碼來實現嗎?如何在d3js中按不同組對顏色鏈接着色

在此先感謝真心想知道答案。

+0

可能相關:https://github.com/mbostock/d3/wiki/Ordinal-Scales – Plato

回答

1

這是怎麼回事? http://bl.ocks.org/maurizzzio/37569cdc0ed9fee40ba3

相關變化:

1)stroke保持顏色的線,每個鏈路具有源/目標節點的信息,以確定它們屬於下列必須進行檢查相同的基團: graphs.nodes[d.source].group === graphs.nodes[d.target].group但強制佈局正在改變graphs.links當被調用的結構,我可以使用d.source.groupd.target.group訪問組,現在如果兩組相同,那麼行的行程與源/目標節點的顏色相同

2)如果不是那麼鏈接在屬於不同組的節點之間,則cl屁股被添加到每個這些鏈接的應用的灰度行程

.attr('stroke', function (d) { 
    if (d.source.group === d.target.group) { 
    return color(d.source.group); 
    } else { 
    d3.select(this).classed('different-groups', true); 
    } 
}) 

CSS:

.different-groups { 
    stroke: #999; 
} 
+0

由於那真的很好 – Lambo