可視化的庫有不少,基於 JavaScript 開發的庫也有不少,D3 有什麼優點呢?算法
(1)數據可以與 DOM 綁定在一塊兒函數
D3 可以將數據與 DOM 綁定在一塊兒,使得數據與圖形成爲一個總體,即圖形中有數據、數據中有圖形。那麼在生成圖形或更改圖形時,就能夠方便地根據數據進行操做,而且,當數據更改以後,也能簡單地更改圖形。佈局
(2)數據轉換和繪製是獨立的ip
將數據變成圖表,須要很多數學算法。不少可視化庫的作法是:開發
提供一個函數 drawPie() ,輸入數據,直接繪製出餅狀圖。數學
但 D3 的作法是:可視化
提供一個函數 computePie(),可將數據轉換成餅狀圖的數據,而後開發者可以使用本身喜歡的方式來繪製餅狀圖。打包
雖然看起來 D3 使得問題變得麻煩了,可是在圖表要求比較複雜的時候,直接繪製的餅狀圖每每達不到要求,細微的部分沒有辦法更改。而 D3 將二者分離開來,就極大地提升了自由度,以致於開發者甚至可使用其餘的圖形庫來顯示 D3 計算的數據。網頁開發
(3)代碼簡潔互聯網
JQuery 是網頁開發中很經常使用的庫,其中使用了鏈式語法,被不少人喜好。D3 也採用了這一語法,可以一個函數套一個函數,使得代碼很簡潔。
(4)大量佈局
餅狀圖、樹形圖、打包圖、矩陣樹圖等等,D3 將大量複雜的算法封裝成一個一個」佈局「,用於轉換數據。可以適用於各類圖表的製做。
(5)基於SVG,縮放不會損失精度
SVG,是可縮放的矢量圖形。D3 的繪製大部分是在 SVG 上繪製的,而且提供了大量的圖形生成器,使得在 SVG 上生成圖形變得簡單。
另外,因爲 SVG 是矢量圖,放大縮小不會有精度損失。
本文來自互聯網,若有侵權請聯繫刪除