d3.js(v5.7)力導向圖(關系圖譜)


先上圖,后面再一一解釋:

image.png

參考博客:https://blog.csdn.net/qq_34414916/article/details/80036679

ok,為了方便理解,這里我就沒有用之前封裝的automatch函數來將數據和節點匹配了,如果你對enter(),exit()函數還不是很理解的話,請移步至我之前寫的《node與數據匹配》(automatch函數)

那么接下來:

一、聲明全局變量

因為力導向圖,涉及到眾多節點的運動,並且在寫的時候都是以callback的形式去操作這些節點,所以這里我們將這些節點聲明為全局變量(應該也是可以直接聲明在組件的data里面的,如果你有興趣,不妨一試)

image.png

這些注釋應該都詳細了吧。

二、開始布局畫布

image.png

不難看出,在900x500的svg畫布上,添加了一個g標簽作為繪圖的起點(60,60),並新建一個力導向圖

三、處理節點數據、關系數據

image.png

四、數據處理好之后,開始繪圖

①線和線上文字

image.png

②節點和節點面描述(他兩是一組)

因為是一組,所以他兩外面要用g標簽包裹,就和之前繪完整柱形圖時一樣

image.png

五、輔助函數

主函數中用到了4個輔助函數,其中一個用於初始化線的位置和線上文本位置以及節點分組的位置;

其他三個則用於控制節點分組拖拽時候的自己以及其他節點的位置:image.png

六、官方相關API截圖

image.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM