在說D3以前,應該先了解svg,若是svg都不知道的話,可能d3在作什麼你就很難懂了。因此我會先說一個SVG的入門,而後再講D3git
什麼是SVG: SVG 指可伸縮矢量圖形 (Scalable Vector Graphics) SVG 用來定義用於網絡的基於矢量的圖形 ,SVG 使用 XML 格式定義圖形 。SVG 圖像在放大或改變尺寸的狀況下其圖形質量不會有所損失。github
SVG 的歷史和優點:
在 2003 年一月,SVG 1.1 被確立爲 W3C 標準。數組
參與定義 SVG 的組織有:Sun公司(已被Oracle公司收購)、Adobe、蘋果公司、IBM 以及柯達。瀏覽器
與其餘圖像格式相比,使用 SVG 的優點在於:網絡
x="10" y="10" height="90" width="90" rx="5" ry="5"
x,y就是矩形左上角座標,rx,ry就是矩形的圓角寬高。
dom
cx="50" cy="150" r="40"
cx、cy就是圓心座標,r是半徑
svg
cx="150" cy="150" rx="50" ry="30"
cx、cy就是圓心座標,rx、ry就是圓的長寬兩個半徑
工具
x1="10" y1="200" x2="10" y2="300"
(x1,y1)是起點座標,(x2,y2)是終點座標。
spa
points="80,320 130,320 95,400 80,320"
points就是一系列的座標點,從第一個點開始直線鏈接下一個點,直到結束。若是你想要圖形封閉,能夠把起始點再加在末尾。
code
<path d="M50,50 A30,30 0 0,1 35,20 L100,100 M110,11 L100,0" style="stroke:#660000; fill:none;"/>
path元素的全部繪圖都在d屬性中指定。d屬性包含繪製命令。上面的例子中,M發出「移至」命令,A發出「弧」命令,L發出「線段」命令。這些命令都做用在一個「虛擬畫筆」。這支筆能夠移動,繪製形狀等。
在SVG座標系中,x=0,y=0點在左上角。與正常的圖座標系相比,y軸被反轉。隨着SVG中y的增長,點、形狀等向下移動,而不是向上。
D3 的全稱是(Data-Driven Documents), 顧名思義能夠知道是一個被數據驅動的文檔。D3.js是一個基於數據的操做文檔的JavaScript庫,可讓你綁定任何數據到DOM,支持DIV這種圖案生成,也支持SVG這種圖案的生成。D3幫助你屏蔽了瀏覽器差別,作出來圖案的效果能夠說是炫目得一塌糊塗,但是代碼卻很簡潔。
D3能夠整個模塊安裝使用,也能夠只安裝你須要的模塊
下面是我用過的幾個模塊
Arrays (Statistics, Search, Transformations, Histograms)
數組操做,排序,搜索,總結,統計數據,搜索,變換,直方圖
Axes
建立座標軸,以及座標軸相關的設置,操做等。會建立相關dom元素
Brushes
刷子組件,選擇區域用。會建立相關dom元素
Dragging
拖拽組件,用於實現拖拽事件
Scales (Continuous, Sequential, Quantize, Ordinal)
比例尺,會和座標軸結合使用
Selections (Selecting, Modifying, Data, Events, Control, Local Variables, Namespaces)
選擇集
Transitions
過渡組件,用來定義一些過渡效果
Zooming
縮放組件
具體的API詳解,稍等一下。。。。
API地址
未完待續。。。😳