摘要:新公司已經(jīng)呆了一個(gè)多月,目前著手一個(gè)數(shù)據(jù)可視化的項(xiàng)目,數(shù)據(jù)可視化肯定要用到圖形庫如等,經(jīng)決定我的這個(gè)項(xiàng)目用阿里旗下螞蟻金服所開發(fā)的圖表庫。數(shù)據(jù)提示框內(nèi)提示的信息還可以通過格式化函數(shù)動(dòng)態(tài)指定。
新公司已經(jīng)呆了一個(gè)多月,目前著手一個(gè)數(shù)據(jù)可視化的項(xiàng)目,數(shù)據(jù)可視化肯定要用到圖形庫如D3、Highcharts、ECharts、Chart等,經(jīng)決定我的這個(gè)項(xiàng)目用阿里旗下螞蟻金服所開發(fā)的G2圖表庫。
官方地址:https://antv.alipay.com/g2/do...
Github:https://github.com/antvis
2016年發(fā)布的開源庫,時(shí)間雖短但庫功能齊全,唯一不足的是社區(qū)太少,對(duì)于我這類菜鳥來說是件非常難過的事情,沒辦法硬著頭皮終于找到思路……項(xiàng)目完成之際寫篇 G2 的相關(guān)功能的用法,幫助更多使用 G2 的朋友快速上手。
首先和大多數(shù)圖形庫一樣G2的dom結(jié)構(gòu)是由canvas組成的。
為了更好得使用 G2 進(jìn)行數(shù)據(jù)可視化,我們也和其他圖形庫一樣,需要先了解圖表的組成以及相關(guān)概念,完整的 G2 圖表組成如下:
坐標(biāo)軸 axis接下來各個(gè)組合的相關(guān)概念我將復(fù)制官網(wǎng)的:
通常包含兩個(gè)坐標(biāo)軸,在笛卡爾坐標(biāo)系下,分別為 x 軸和 y 軸,在極坐標(biāo)軸下,則分別由角度和半徑2個(gè)維度構(gòu)成。 每個(gè)坐標(biāo)軸由坐標(biāo)軸線、刻度線、刻度文本、標(biāo)題以及網(wǎng)格線組成。
圖例 legend圖例作為圖表的輔助元素,用于標(biāo)定不同的數(shù)據(jù)類型以及數(shù)據(jù)的范圍,用于輔助閱讀圖表,幫助用戶在圖表中進(jìn)行數(shù)據(jù)的篩選過濾。
幾何標(biāo)記 geom幾何標(biāo)記,即我們所說的點(diǎn)、線、面這些幾何圖形,在 G2 中幾何標(biāo)記的類型決定了生成圖表的類型。也就是數(shù)據(jù)被可視化后的實(shí)際表現(xiàn),不同的幾何標(biāo)都對(duì)應(yīng)自己能識(shí)別的圖形屬性。
G2 的核心既是將數(shù)據(jù)從數(shù)據(jù)空間轉(zhuǎn)換到圖形空間。
提示信息 tooltip當(dāng)鼠標(biāo)懸停在某個(gè)點(diǎn)上時(shí),會(huì)以框的形式顯示當(dāng)前點(diǎn)對(duì)應(yīng)的數(shù)據(jù)的信息,比如該點(diǎn)的值,數(shù)據(jù)單位等。數(shù)據(jù)提示框內(nèi)提示的信息還可以通過格式化函數(shù)動(dòng)態(tài)指定。
輔助標(biāo)記 guide當(dāng)需要在圖表上繪制一些輔助線、輔助框或者圖片時(shí),比如增加平均值線、最高值線或者標(biāo)示明顯的范圍區(qū)域時(shí),可以使用輔助標(biāo)記 guide。
接著如上所述G2的dom結(jié)構(gòu)也是canvas,看圖了解到其實(shí)它是由三層 canvas 構(gòu)成的,這三層 canvas 分別對(duì)應(yīng) chart 對(duì)象的如下三個(gè)屬性:
frontCanvas 最上層 canvas,圖例 legend、提示信息 tooltip、和 text tag html 這三種類型的輔助標(biāo)記 guide 在這一層繪制;
canvas 中間層,繪制圖表的主體內(nèi)容幾何標(biāo)記 geom;
backCanvas 最下層 canvas,坐標(biāo)軸 axis 和 line image rect arc 這四種類型的輔助標(biāo)記 guide 在這一層繪制。
了解完相關(guān)知識(shí),現(xiàn)在就開始創(chuàng)建圖形吧。需要先引入G2的JS文件: