聊一聊三個(gè)JavaScript 可視化框架
本文討論了三種主要的 JavaScript 框架,用于將數(shù)據(jù)可視化到客戶端。
Processing.js
Processing 既是一種語言又是編程環(huán)境,其原生代碼采用類似 Java 的語法。Processing 的用戶調(diào)用他們的應(yīng)用程序草圖,Processing.js 只是將本機(jī)代碼轉(zhuǎn)換為 JavaScript,以便在網(wǎng)頁上呈現(xiàn)它們。
它還有一個(gè) setup() 和 draw() 函數(shù),分別用于初始化應(yīng)用程序狀態(tài)和在畫布元素上繪圖。
這是一種高效且輕松的方式來展示你的網(wǎng)頁。它還為用戶的交互提供了空間,因?yàn)樗梢越邮苡脩舻妮斎?從而使它成為一個(gè)非常足智多謀的工具。
Raphael.js
據(jù)說Raphael的強(qiáng)項(xiàng)是它能夠輕松繪制。要使用 Raphael,你只需要一個(gè)瀏覽器和文本編輯器。Raphael還也允許編碼,你可以為其編寫命令,以便在用戶加載你的網(wǎng)頁時(shí)以獨(dú)特的方式繪制事物。
Raphael支持:
- 適用于幾乎所有瀏覽器、舊瀏覽器和最有可能出現(xiàn)的瀏覽器。
- 不需要外部插件即可正常運(yùn)行。
- 是否對(duì)移動(dòng)設(shè)備友好。
- Raphael 直接使用瀏覽器的內(nèi)置圖形語言,稱為可縮放矢量圖形 (SVG)。
然而,Raphael 與舊版瀏覽器兼容的主要原因是它可以很好地與一種稱為矢量標(biāo)記語言 (VML) 的格式配合使用。Raphael 是純粹的 JavaScript;這意味著它可以與網(wǎng)頁無縫自然地協(xié)同工作。
Raphael.js 是一個(gè)比 Processing.js 更流行的框架。它在數(shù)據(jù)可視化社區(qū)中也有很多用戶,每當(dāng)出現(xiàn)任何問題時(shí),總會(huì)有人幫助你。它是開源的,肯定會(huì)得到改進(jìn),Raphael 未來會(huì)很流行。所有這些很可能使 Raphael.js 比其他數(shù)據(jù)可視化框架更具優(yōu)勢(shì)。
Raphael 有一個(gè)簡單的學(xué)習(xí)曲線,幾乎可以立即使用。
D3.js
D3 代表(Data Driven Documents),顧名思義;為數(shù)據(jù)可視化目的而精心包裝。它將原始數(shù)據(jù)集轉(zhuǎn)換為可視化,并與 Microsoft Excel 無縫協(xié)作。與 Raphael.js 一樣,D3 使用 SVG 并將可視化形狀作為 DOM(文檔對(duì)象模型)的一部分。這意味著你可以使用級(jí)聯(lián)樣式表 (CSS) 來設(shè)置和設(shè)計(jì)數(shù)據(jù)的樣式。
D3.js 基于 HTML、DOM、CSS、SVG 并且還支持 Canvas。 D3 在其上構(gòu)建了許多其他允許拖放的框架。 D3 是一個(gè)很好的長期投資工具,可以創(chuàng)建你自己的庫,然后你可以使用這些庫來加快創(chuàng)建過程。出于數(shù)據(jù)可視化的目的,與 SVG 最重要的交互是將數(shù)據(jù)綁定到它們,D3 允許圍繞它們重寫數(shù)據(jù)包裝器。
就目前而言,D3.js 不僅在許多情況下優(yōu)于 Raphael.js 和 Processing.js,而且還是 jQuery 和其他框架的可行替代品?;? D3 構(gòu)建的工具包括 MetricsGraphics、Epoch、Vega、NVD3 等等??梢允褂眠@些工具來代替從頭開始學(xué)習(xí) D3。要開始使用 D3,請(qǐng)?jiān)L問 D3 網(wǎng)站并下載最新版本。
在決定使用什么框架進(jìn)行數(shù)據(jù)可視化時(shí),你必須知道自己的優(yōu)先級(jí)。