天天看點

一個關于D3js學習的倉庫建立了!

Learn-D3

因為中文教程比較少, 特定建立了一個d3相關學習(含demo)的中文​​倉庫​​

分享内容:

  1. D3内部子產品的深入講解 有一個系統整體認知
  2. Analysis- examples 分析場景的例子
  3. Observable D3團隊分享示例的環境介紹
第一點作為重點, 本系列會完整涵蓋 D3 概念, 比如:選擇、連接配接、資料請求、縮放函數、事件處理和轉換。

D3-Introduction

一個關于D3js學習的倉庫建立了!

​​D3.js​​是一個 JavaScript 庫,用于在 Web 上建立定制的互動式圖表。

D3全稱 Data-Driven Documents 3個D開頭的單詞也是它D3簡寫的由來。

大多數圖表庫(例如:​​Echarts​​)提供的都是現成的圖表,而 D3 由很多基礎建構塊組成,可以使用這些建構塊建構自定義圖表或地圖。

一個關于D3js學習的倉庫建立了!
​​在codepen中嘗試編輯上面示例​​

使用 ​

​echarts.js​

​ 建立上面的條形圖隻需​​幾行代碼​​,

但是使用D3 建立上面的圖表就會複雜一些,因為它提供的方法更底層 (粒度更細一些)。并且需要有一些JavaScript, HTML, SVG和 CSS.的經驗。

如果我們的需求隻是标準條形圖、折線圖或餅圖,應該考慮使用​

​Echarts​

​​等庫。但是,如果需要定制圖表或有非常精确的需求,則應考慮 ​

​D3js​

​。

D3 的優勢 功能到底有哪些?

  • 非常受歡迎(上億次的下載下傳和上10萬的star),社群活躍 有大量開發的資源( D3團隊釋出為主)。
  • 超級靈活, 專注于圖表組合的基礎元素,例如​

    ​scales​

    ​​,​

    ​shapes​

    ​。
  • 提供資料驅動修改HTML 和 SVG 元素 。
  • 各種标準資料加載 資料處理(例如 CSV 資料)。
  • 生成複雜圖表的助手,例如樹形圖、網絡圖。
  • 在不同圖表狀态之間制作動畫的強大轉換效果。(非常多的内置函數)
  • 強大的使用者互動支援,包括平移、縮放和拖動。

D3 内部到底有哪些子產品?

一個關于D3js學習的倉庫建立了!

上面就是​

​D3​

​​所有的​

​repositories​

​(倉庫), 大概分為幾類:

  • 經常使用的, 基礎的(帶五角星的,本系列也會講解)。例如: ​

    ​shapes​

    ​​ ​

    ​selection​

  • 工具類的 例如: ​

    ​time format timer​

  • 廢棄的 很長時間不更新的。​

    ​bundler request​

注意本系列不會涉及到源碼的講解。 後續如果有需要會補充。

本系列contents(内容)

一個關于D3js學習的倉庫建立了!

上面就是本系列内容的大綱, 簡單拿幾個展開說說:

Selection & data joins

​Selection​

​支援以資料驅動的方式添加、删除和修改 ​

​HTML​

​​ 和 ​

​SVG ​

​​元素。。包含了非常多函數對元素的處理,例如:​

​selecting Elements​

​​ , ​

​modifying Elements​

​ ...

​data joins​

​支援将資料與元素進行綁定(也就是資料連接配接)。

都是D3的基礎子產品。

data requests

可以幫助從給定的 URL 請求檔案并将檔案資料轉換為 JavaScript 數組 例如(CSV)。使得後面處理真實資料變得非常容易。

支援CSV JSON TXT非常多的格式。

force layout

通過特定實體規則模拟,幫助我們特定方式展示元素資訊。提供現成的内置力函數,并且支援拓展。

一個關于D3js學習的倉庫建立了!

transitions

​transitions​

​​可以在不同圖表狀态平滑轉換,制作動畫。例如,有一些​

​circle​

​​元素, 當使用者點選​

​update data​

​時 平滑過渡到新的坐标位置。為圖表增加了視覺吸引力。

最後

繼續閱讀