如何評價 D3.js 這個框架?

D3.js - Data-Driven Documents 這個框架發佈於2011年。從當時的眼光來看,利用Data Join(Thinking with Joins)來完成『DOM結點』與『數據』之間的更新好像還是挺先進的。另外,可以直接操作SVG DOM對象也是 D3 與其他『高級』Visualization框架(例如highchart,protovis)不同的賣點之一。

將近4年過去了,前端技術有了些變化,MVVM、Web Component、Virtual DOM似乎是目前的趨勢。我不太了解d3.js的實現機制,但感覺它的Data Join與Virtual DOM(React)似乎有點像(利用局部更新來優化性能)。不知道d3.js能否從這些最新的技術趨勢中有所借鑒呢?或者我們能否從d3.js里借鑒到哪些思想呢?


d3.js你看成是svg的jQuery就行了。

d3.js的所有操作都是真實的dom操作,這和React的vdom完全是兩個思路。

當然,d3.js也有可以先計算節點屬性,最後掛上dom樹的用法,只不過不常用。

操作SVG dom並不是什麼了不起的,任何前端程序員操作都可以再短時間內學會操作SVG。

jQuery式的操作,在今天也不是什麼先進的東西。

更何況d3的選擇器,在我看來,並不是最適合它的交互方式。

d3厲害的地方在於它建立了一整套數據到SVG屬性的計算框架,

常用Data visualization模型,大多都可以再d3.layout裡面找到,

你常用的幾何圖形,在d3.svg裡面都有。

它為不理解SVG屬性計算公式的程序員提供了一整套工具包,讓你可以輕鬆的把數據轉換成你想要的SVG屬性。而不用把精力耗費在學習如何生成一條path之類的事情上。

現在看來,組件化可以解決HTML排版的很多問題,當然也可以解決SVG排版的問題。

但是,d3作為無數組Data Visualization庫的基礎,已經太大而不能轉型了。

但是你結合d3核心的數學處理模塊和最新的組件化框架,很容易就可以做出復用性和易用性都很高的SVG組件。


定製性超高

不會英語的人搞不定

JS不溜的人也搞不定

學不會就去用 echarts 吧


d3這個框架,很牛逼,秒殺echart,highcharts,後面兩個框架易上手,即便是對前端不怎麼熟悉的同學也能使用,但是記得多,靈活性差,D3不一樣,理解了,就可以了!D3出自thought works,也有些年頭了,在數據可視化的地位基本是一直穩定在前三,當然前兩個不會是echart,highcharts,數據可視化的技術比較多,比如python的一些庫,R語言之類的。

我學習D3快三個月了,學習難度還是挺大的,最頭疼的就是版本升級不兼容舊版本,就拿V3.x升級到V4.0變化簡直太大了,有幾個bug我改了兩三天。

這是V3.x的Api文檔:V3.x

這是V4.0的Api文檔V4.0

這是V3.x升級到V4.0的升級文檔,有兩個版本的比較V3.x-V4.0

d3的模式是數據驅動,很符合現在的開發模式,相信D3隨著大數據的發展會越來越火。只是版本還是希望能趨於穩定!不然這學習成本太高了!

祝上面的鏈接能幫到你!項目版本升級太特么苦逼了!


200多個版本,超過4000次commit,60000多個贊,作者為此至少發表了4篇論文,經歷幾次大版本改革,直到現在還是不斷優化升級。作為一個經典的不能再經典的可視化框架,在數據可視化領域,他的競爭者跟他相比基本上望塵莫及。就這個領域地位而言,這是一個足以跟jquery或者React,Vue之類大名鼎鼎的框架排排名的JS框架。


作為一個D3菜鳥級選手來說一句,d3的定製能力真的很強,主要是其具有豐富的基礎性API,對於數據可視化型需求非常之適用。哦,對了,好像P5.js也不錯,以後可以換坑試試,對於動畫型的好像不錯


我是從python可視化學到d3的。。。 還是很看好這東西。


原始的dom操作,沒有mvvm的功能


好. new york times, bloomberg visual, wall street journal 都用這個


我想知道d3.js有用虛擬dom技術嗎?


推薦閱讀:

Processing和OSG的比較:一個是新興的語言,一個是成熟的API,它們在實現數據可視化方面到底有什麼優劣呢?
你最欣賞的數據可視化的案例是什麼?
在目前沒有實際數據資源的情況下,如何學習數據分析?
如何選擇合適的圖形表達論文的數據結果?
歐特克(autodesk)的一個能查看信息的BIM雲端軟體是什麼?

TAG:前端開發 | JavaScript | 數據分析 | 數據可視化 | D3js |