D3強制佈局中,如果在兩個節點之間存在多個鏈接,D3只會挑選一個而忽略其他節點。是否有可能可視化多圖?D3可以強制佈局可視化多圖嗎?
4
A
回答
3
您可以通過創建一組鏈接,每個鏈接的形式爲一束平凡的編碼您的多重圖作爲圖:
{"links": [/* one or more links*/], "source": …, "target": …}
然後,您可以運行力導向佈局按往常一樣放置您的節點。然後,您需要適當地表示每個捆綁包,例如通過繪製平行線。
相關:邁克·博斯托克用一個簡單的黑客來表示two parallel links between nodes,雖然這不容易擴展到更多的鏈接。
7
因此,事實證明,d3 確實呈現節點之間的多個鏈接,它只是將它們繪製在另一個之上。我解決這個問題的方法是將鏈接繪製爲路徑(而不是線條)併爲每個路徑添加一條不同的曲線。這意味着每個鏈接對象都需要一些東西來區分它與其他源節點和目標節點相同。我的鏈接看起來是這樣的:
links: [
{"source": 0,"target": 1,"count": 1},
{"source": 1,"target": 2,"count": 1},
{"source": 1,"target": 3,"count": 1},
{"source": 1,"target": 4,"count": 1},
// same source and target with greater count
{"source": 1,"target": 4,"count": 2},
{"source": 1,"target": 4,"count": 3},
{"source": 1,"target": 4,"count": 4}
]
,然後將該路徑渲染代碼看起來像
function tick() {
link.attr("d", function(d) {
var x1 = d.source.x,
y1 = d.source.y,
x2 = d.target.x,
y2 = d.target.y,
dx = x2 - x1,
dy = y2 - y1,
// Set dr to 0 for straight edges.
// Set dr to Math.sqrt(dx * dx + dy * dy) for a simple curve.
// Assuming a simple curve, decrease dr to space curves.
// There's probably a better decay function that spaces things nice and evenly.
dr = Math.sqrt(dx * dx + dy * dy) - Math.sqrt(300*(d.count-1));
return "M" + x1 + "," + y1 + "A" + dr + "," + dr + " 0 0,1 " + x2 + "," + y2;
});
node.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; });
}
這裏是一個jsfiddle演示的方法。
相關問題
- 1. 如何可視化數據從MySQL數據庫強制佈局的D3工具
- 2. D3樹佈局可視化 - 繼承多個父母的孩子
- 3. 可以控制android視圖中文本的佈局嗎?
- 4. 在jung中可視化多個佈局
- 5. Dagre-D3圖。可以定製路徑嗎?
- 6. RadioGroup可以跨越多個佈局嗎?
- 7. D3 - 強制佈局,圈內圓圈
- 8. JavaScript - D3強制佈局高亮子樹
- 9. D3強制佈局穩定檢測
- 10. D3 v4:更新強制佈局
- 11. d3.js強制佈局不運行
- 12. d3強制佈局 - 定位節點
- 13. D3.js強制指導佈局?
- 14. 我可以擁有佈局的多佈局方向嗎?
- 15. 可以用視圖構建這個佈局嗎?
- 16. 可以序列化視圖列表嗎?
- 17. 我可以在佈局/合併佈局中使用佈局嗎?
- 18. 使用大型數據集時,D3強制佈局可視化效果會變得很慢?
- 19. 共享佈局視圖可以在ASP.NET MVC中有一個控制器嗎?
- 20. 我可以在資源佈局文件中使用多個列表視圖嗎?
- 21. 強制隱藏標籤內容的可視佈局
- 22. AngularJS D3可視化與n3圖表
- 23. 在d3中拖動多個節點強制定向佈局
- 24. 在同一頁面上的多個d3強制佈局實例
- 25. 我可以重繪視圖而不強制重繪底層視圖嗎?
- 26. 我可以在D3氣泡圖中強制使用氣泡尺寸比例嗎?
- 27. d3.js,網絡可視化
- 28. D3.js可視化滯後
- 29. GWT 2.0可視化佈局工具?
- 30. 如何動態更改強制佈局圖中的數據? D3
謝謝,這就是我正在尋找的! – Dong