Can you summarize the following document?
        
  在D3.js開發之前已經有出現過許多嘗試做資料視覺化的套件,例如Prefuse,Flare和Protovis程式庫,他們都可以視為D3.js的前身。然而Prefuse和Flare皆有缺點,皆不能只透過瀏覽器完成渲染,皆須要透過額外外掛來完成。  例如2005年釋出的Prefuse是一個資料視覺化程式庫,但是它需要透過網頁的Java外掛才能於瀏覽器中呈現;而Flare是2007年釋出的另一個資料視覺化工具包,由於其是使用ActionScript程式語言開發,因此也需要額外外掛,即Flash外掛才能完成渲染。  2009年,史丹佛大學的史丹佛視覺化團隊(Stanford Visualization Group)的傑佛瑞·赫爾、邁克·保斯托和瓦迪姆·歐格菲茲齊利用開發Prefuse和Flare的經驗開始用Javscript開發了可從給定資料產生SVG圖形的Protovis程式庫。而Protovis程式庫在業界和學界皆有一定的知名度。  2011年,史丹佛視覺化團隊停止開發Protovis,並開始開發新的資料視覺化程式庫,藉由之前開發Protovis的經驗,開發出了D3.js程式庫,在注重於Web標準的同時提供了更豐富的平臺也有了更好的效能。

  D3.js透過預先建立好遷入於網頁中的JavaScript函式來選擇網頁元素、建立SVG元素、調整CSS來呈現資料,並且也可以設定動畫、動態改變物件狀態或加入工具提示來完成使用者互動功能。使用簡單的D3.js函式就能夠將大型的資料資料結構與SVG物件進行繫結,並且能生成格式化文字和各種圖表。其資料資料結構的格式可以是JSON、CSV(以逗號分隔的資料)或GeoJSON,也可以透過自己寫JavaScript函式來讀取其他或自定義格式的資料,例如Shapefile。

  D3.js所使用的物件選擇方式是透過使用CSS樣式選擇器來選擇一個或多個或一組文件物件模型物件,然後透過類似jQuery的方式控制所選的物件。例如,選擇所有的網頁元素,將之改成方形類別、移動位置、並更換顏色為淡紫色在D3.js中只要使用簡單的程式碼即可完成:

  透過D3.js定義的物件成員函式codice_1則可以在一定時間內平滑地改變物件的屬性或樣式的值,例如可以在500毫秒內逐漸將所有的網頁元素漸變為粉紅色:

  D3.js有提供一進階應用例如設定與物件相關聯,或者將載入的資料直接繪成物件。在D3.js中,可以將資料與物件繫結,如此一來,當資料讀入之後根據資料產生對應具有相關的屬性(形狀、顏色或數值等)和行為(動畫或事件等)的SVG物件。

  D3.js除了有提供將載入的資料直接繪成物件的功能之外,也支援從檔案讀取資料並直接生成SVG影象。此應用使得D3.js可以用簡單的程式碼完成與地理資訊相關的資料視覺化,而新版本的D3.js也改善了地理座標的轉換系統,因此能準確地呈現包含地理資訊的圖表,例如「japan.json」中存了日本的GeoJSON地理資訊,則D3.js可以直接並載入並顯示日本地圖:  然而許多政府機關提供的檔案皆為Shapefile,而由於D3.js也可以透過自己寫JavaScript函式或引用他第三方程式庫來讀取其他例如Shapefile的資料:

  當檔案順利讀入並與D3.js物件繫結之後,一般D3.js在使用上基本上會明確地用.enter()函式、暗示更新的函式以及.exit()函式來呼叫資料集中範圍內的資料,其中,d3.js沒有「update()」函式,需要自行時做對應功能來完成enter、update以及exit流程。接在.enter()函式後方的指令會作用在所有資料上並設定到前一段指令selectAll()選擇的網頁元素中所有未就緒的網頁元素。

  除了D3.js之外亦有許多可以抓取並處理資料的程式庫,例如jQuery,但D3.js與jQuery不同於,D3.js使用了資料驅動化來更有效地處理資料,例如,原先使用迴圈來處理資料,並且要預先把網頁元素產生出來,而D3.js則可以使用select或selectAll來批次完成資料處理,並會會視情況自動生成所需的網頁元素,而使得網頁有更多的彈性,也能支援能動態地即時地作出反應的互動性功能。

  

  D3.js可以與Three.js結合,透過結合了D3.js的資料視覺化、圖表產生與Three.js的WebGL特性可以實現三維資料視覺化、圖表的呈現。
D3.js(D3或Data-Driven Documents)是一個使用動態圖形進行資料視覺化的JavaScript程式庫。與W3C標準相容,並且利用廣泛實現的SVG、JavaScript和CSS標準,改良自早期的Protovis程式庫。與其他的程式庫相比,D3對檢視結果有很大的可控性。D3是2011年面世的,同年的8月釋出了2.0.0版。到2018年4月,D3已被更新到了5.5.0版。