簡(jiǎn)介
VizJSON 是一種標(biāo)記語(yǔ)言,用于向渲染引擎描述圖表,以便引擎能夠解釋相關(guān)的數(shù)據(jù),并在圖表中顯示它。它在概念上類似于 HTML,HTML 是瀏覽器可以解釋的一種常見標(biāo)記語(yǔ)言,用于顯示W(wǎng)eb 頁(yè)面。您可以這樣想:VizJSON 之于可視化渲染器,正如 HTML 之于瀏覽器。本文將介紹使用開放語(yǔ)言(如VizJSON)描述可視化的優(yōu)勢(shì)。這種語(yǔ)言可以作為新的開源軟件的基礎(chǔ),該軟件將生成 VizJSON 并使用它作為可視化的描述語(yǔ)言 。
VizJSON 是基于語(yǔ)言的可視化數(shù)據(jù)模型規(guī)范,它以 The Grammar of Graphics(參閱 參考資料)為基礎(chǔ),并使用 JavaScript Object Notation (JSON) 進(jìn)行表示。The Grammar of Graphics描述了連接數(shù)據(jù)和圖形的規(guī)則。本書背后的理念已經(jīng)影響了一些統(tǒng)計(jì)軟件,比如 R 和 SPSS。(請(qǐng)參閱 參考資料,了解關(guān)于 R 和 SPSS的更多信息)。
VizJSON 將圖表定義為可以混合匹配,然后將這種定義應(yīng)用到數(shù)據(jù)集的一組特性,幫助傳達(dá)關(guān)于數(shù)據(jù)的一些特定信息。例如,在美國(guó)病人就診牙醫(yī)的頻率數(shù)據(jù)集。VizJSON可以用來強(qiáng)調(diào)一個(gè)事實(shí):在美國(guó)的東海岸,就診牙醫(yī)的頻率正在隨著時(shí)間的推移而增加。
使用VizJSON,可以預(yù)定義特定圖表的特性,為特定類型的數(shù)據(jù)創(chuàng)建傳遞特定消息的模板。由此產(chǎn)生的模板可顯示一個(gè)柱狀圖、餅狀圖、字圖或其他格式,它可以成為展示組織內(nèi)或跨組織的特定類型數(shù)據(jù)的統(tǒng)一方式。模板可以被重用,它為查看、解釋和分析數(shù)據(jù)提供了一致的方法。
VizJSON方法可以很方便地提供交互功能,讓用戶能夠利用現(xiàn)有的數(shù)據(jù)集,使用不同的方式渲染它們,講述不同的故事,或讀取不同的數(shù)據(jù)集,用相同的方式渲染它們,從而輕松地分析它們之間的差異。因?yàn)?VizJSON是用 JSON 表達(dá)的,所以可以輕松地將它集成到 HTML、演示文稿或其他格式中。甚至可以通過社交媒體在 Web 上共享它。
使用 VizJSON 描述的圖表和可視化
VizJSON 是一個(gè)基于語(yǔ)言的圖表規(guī)范。以不同的方式定義多種圖表:
條形圖— 可以通過基本的二維坐標(biāo)來表示,其分類 x 數(shù)值落在固定間隔距離的位置。
折線圖— 可以通過基本的二維坐標(biāo)來表示,其中任何 x 數(shù)值都顯示在線段連接的位置上。
直方圖— 可以通過基本的二維坐標(biāo)來表示,其數(shù)值 x 分級(jí)統(tǒng)計(jì)計(jì)數(shù)落在固定間隔距離的位置。
VizJSON 提供了正交的特性集,描述了所有常見的圖表、幾乎所有不常見的圖表,以及最前沿的研究圖表。
圖 1說明,使用圖形語(yǔ)法的方法,用戶只需修改一行規(guī)范,就可以輕松地改變數(shù)據(jù)的可視化方式。這一行的修改導(dǎo)致采用專用餅圖而不是條形圖來顯示數(shù)據(jù)。利用這項(xiàng)功能,工具提供商現(xiàn)在可以用一個(gè)非常簡(jiǎn)單的方法來編寫修改規(guī)范的工具,讓用戶能夠輕松采用多種格式查看其數(shù)據(jù),幫助讀者理解這些數(shù)據(jù)試圖傳達(dá)什么樣的信息。
圖 1. 簡(jiǎn)單地修改規(guī)范,將條形圖轉(zhuǎn)換成餅圖
使用 VizJSON 方法的優(yōu)點(diǎn)和解決的問題
數(shù)據(jù)和數(shù)據(jù)可視化的一個(gè)主要問題是,有許多方法都可以用來表示數(shù)據(jù)。多樣性會(huì)帶來問題,因?yàn)樵诠局g,甚至在同一公司的不同部門之間共享數(shù)據(jù)時(shí),數(shù)據(jù)都可能以不同的方式進(jìn)行渲染,或者可能完全無法渲染,因?yàn)榭梢暬鏌o法理解這些輸入。
VizJSON 提供了一個(gè)用來表達(dá)可視化的聲明性方法(與 HTML 提供的用來表達(dá) Web 頁(yè)面的聲明性方法大致相同),從而解決這些問題。通過標(biāo)準(zhǔn)化使用 VizJSON 圖形語(yǔ)法(序列化為JSON 表示法)來表示可視化的方式,VizJSON 提供一個(gè)表示可視化的一致方法,可以在基于 JSON 的 Web API、普通的 HTML,以及各種基于 JSON 的軟件中使用它。
甚至可以在日益流行的 JSON 數(shù)據(jù)庫(kù)中存儲(chǔ)和查詢 JSON模板和完全可視化(完全可視化包括模板和數(shù)據(jù))。許多好處源于標(biāo)準(zhǔn)的可視化表示法。隨著時(shí)間的推移,用戶可以使用支持庫(kù)和流行的模板,并實(shí)現(xiàn)更多不同可視化的構(gòu)建塊,使構(gòu)建可視化軟件的成本越來越低。通過一致的VizJSON 圖形語(yǔ)法集,可以更容易地支持多個(gè)客戶端目標(biāo)和渲染引擎。此外,在社交媒體中更容易使用可視化,因?yàn)?VizJSON 表示可以在 Facebook 和其他社交媒體上共享數(shù)據(jù)。
通過采用一套標(biāo)準(zhǔn)的 VizJSON 模板,監(jiān)管機(jī)構(gòu)和政府可以更容易地提供關(guān)于應(yīng)該如何展示數(shù)據(jù)的指導(dǎo),從而更輕松地比較數(shù)據(jù)。此外,通過在模板中使用 VizJSON元數(shù)據(jù),渲染引擎可以確保通過實(shí)現(xiàn) Web Accessibility Initiative Accessible Rich Internet Applications Suite(WAI-ARIA)(參閱 參考資料)可以訪問可視化。
VizJSON 與現(xiàn)有技術(shù)的比較
VizJSON 讓用戶能夠聲明自己希望如何顯示數(shù)據(jù)來傳達(dá)特定的故事,或采用讓信息更容易被理解的方式顯示數(shù)據(jù)。VizJSON 提供一個(gè)表達(dá)可視化的常用方法,該方法與 HTML 為表達(dá)一個(gè)Web 頁(yè)面所提供的常用方法大致相同。一旦表達(dá)可視化的常用方法被采用,我們就可以有多種創(chuàng)建或顯示規(guī)范的方式。
圖 2. 表達(dá)可視化的聲明方式
VizJSON 支持幾種格式:
SVG— 用于針對(duì) Web 瀏覽器渲染輸出的較低層次的表示法。
Dojo— 可以用于開發(fā)跨瀏覽器工作的 JavaScript 應(yīng)用程序的 JavaScript 庫(kù)。通過使用 Dojo Widget Extensions forVizJSON,可以用 Dojo 在瀏覽器上渲染 VizJSON。(這與其他任何擴(kuò)展的工作方式相同。)使用 VizJSON DOJO 擴(kuò)展的其他替代方法包括:使用面向 VizJSON 的JQuery 插件,或面向 VizJSON 的 Sencha 插件。
canvas 標(biāo)記— 識(shí)別可繪制的區(qū)域的一個(gè) HTML5 標(biāo)記。Dojo 小部件可以使用 canvas 標(biāo)記來顯示圖表,包括 VizJSON。
圖 3. VizJSON 與現(xiàn)有格式和標(biāo)準(zhǔn)的比較
Rapidly Adaptive Visualization Engine (RAVE) 是一個(gè)懂得如何渲染 VizJSON 規(guī)范的底層技術(shù)。下面的開源產(chǎn)品和技術(shù)提供了與使用VizJSON 和 RAVE 類似的功能:
Tableau Desktop— 桌面應(yīng)用程序,使用戶能夠快速、輕松地連接到數(shù)據(jù)源,分析數(shù)據(jù),創(chuàng)建可視化,并創(chuàng)建結(jié)果的儀表板。它易于使用,但可以創(chuàng)建的可視化數(shù)量有限。RAVE 與 VizJSON結(jié)合使用可以在多個(gè)平臺(tái)上創(chuàng)建無限數(shù)量的可視化。
D3.js— JavaScript 庫(kù),用于處理基于數(shù)據(jù)的文檔。該庫(kù)使得用戶能夠?qū)?shù)據(jù)綁定到 Document ObjectModel(DOM),并將轉(zhuǎn)換應(yīng)用到這個(gè)對(duì)象模型,以獲得想要的結(jié)果。D3.js 使用 Web 標(biāo)準(zhǔn) CSS3、HTML5 和 SVG 來實(shí)現(xiàn)靈活性,避免遭受被綁定到專有技術(shù)的限制。D3.js是與 RAVE/VizJSON 最接近的技術(shù),它向其用戶提供了最大的靈活性和自由度。
Google Charts— Google 全資擁有的 JavaScript 庫(kù)。目前的版本已將重點(diǎn)完全放在 Web 上。因此,用 Google Charts JavaScript API創(chuàng)建的圖表目前只能通過瀏覽器提供。
用戶將要?jiǎng)?chuàng)建的圖表數(shù)據(jù)可以嵌入到文檔本身中,這些數(shù)據(jù)也可以來自外部源,如 Google Spreadsheets 和 Google Fusion Tables。用戶還可以利用 Chart Tools Datasource 協(xié)議,但這種方法具有局限性,因?yàn)閿?shù)據(jù)源必須實(shí)現(xiàn) Chart Tools Datasource 協(xié)議。Google Charts 支持的圖表類型的數(shù)量目前只有 14 種。這些圖表可被視為模板,并且用戶可以自定義圖表的類型,修改顏色和字體、線條寬度,以及其他視覺效果。不過,用戶仍然僅限于使用所提供的基本圖表。
R + ggplot2— 用于統(tǒng)計(jì)編程語(yǔ)言 R 的數(shù)據(jù)可視化軟件包。Ggplot2 是 Grammar of Graphics模型的一個(gè)實(shí)現(xiàn),這是一個(gè)將圖表拆分成多個(gè)組件的架構(gòu),如坐標(biāo)軸、標(biāo)尺、圖表類型,等等。該系統(tǒng)允許在表示特定數(shù)據(jù)集的圖表中創(chuàng)建圖形的模塊化。不過,這種方法需要掌握豐富的底層軟件包知識(shí)才能靈活地創(chuàng)建多種類型的圖表,或加強(qiáng)特定的圖表。
包括 VizJSON 支持的 IBM 產(chǎn)品
許多 IBM 產(chǎn)品和技術(shù)都使用了 VizJSON:
CFO Performance Insight— 提高對(duì)財(cái)務(wù)績(jī)效和關(guān)鍵財(cái)務(wù)績(jī)效指標(biāo)的可見性、洞察和控制。它使得 CFO 能夠利用預(yù)配置的解決方案衡量、監(jiān)測(cè)和預(yù)測(cè)業(yè)務(wù)績(jī)效。
Next Best Action— 有助于最大限度地提高每一次客戶互動(dòng),建立長(zhǎng)期的客戶關(guān)系。
SPSS Decision Management 7—在部署之前自動(dòng)化和優(yōu)化事務(wù)的決策,以一致的方式實(shí)現(xiàn)成果最大化。它結(jié)合了預(yù)測(cè)分析、地方性法規(guī)和計(jì)分,實(shí)時(shí)提供行動(dòng)建議。這個(gè)軟件有助于引導(dǎo)員工和系統(tǒng)每次都做出正確的業(yè)務(wù)決策。
Cognos® Insight— 個(gè)人分析解決方案,使用戶能夠獨(dú)立地探索、分析、可視化和共享數(shù)據(jù),無需依靠 IT的協(xié)助。分析師和業(yè)務(wù)線管理人員在幾分鐘內(nèi)就可以創(chuàng)建和共享自定義應(yīng)用程序、儀表板和可視化,幫助解決個(gè)人和工作組的難題。
Cognos BI 10.2—提供報(bào)表、分析、儀表板和記分卡,當(dāng)人們?cè)噲D理解業(yè)務(wù)績(jī)效時(shí),有助于支持他們的思維方式和工作方式。您可以自由探索信息,分析關(guān)鍵事實(shí),并迅速與關(guān)鍵利益相關(guān)者合作和協(xié)調(diào)決策。
InfoSphere® BigInsights™ 與 BigSheets 技術(shù)— 將 Hadoop 的強(qiáng)大功能帶給企業(yè)。Apache Hadoop 是一個(gè)開源軟件框架,以可靠方式管理大量的結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。
結(jié)束語(yǔ)
VizJSON 通過定義一組可應(yīng)用于數(shù)據(jù)集的特性,提供一個(gè) JSON 符號(hào)來表示可視化??绮煌h(huán)境標(biāo)準(zhǔn)化 VizJSON 并使用已經(jīng)商定好的符號(hào),這可以提供許多好處:
共享服務(wù)— 可以構(gòu)建公共服務(wù)和庫(kù)來處理 VizJSON。
共享工具集— 可以創(chuàng)建公共的工具集,幫助人們快速、輕松地構(gòu)建可視化。
可重用的構(gòu)建塊— 可以為獨(dú)特和專用的可視化創(chuàng)建和使用公共構(gòu)建塊(例如,VizJSON 模板)。
降低成本— 建成的產(chǎn)品可以利用 VizJSON 庫(kù)和模式,降低成本。
新的客戶端— 建成的產(chǎn)品可以利用為新環(huán)境創(chuàng)建的新 VizJSON 客戶端。新的客戶端受益于支持 VizJSON 的成熟產(chǎn)品組合。
異構(gòu)解決方案— 來自多個(gè)供應(yīng)商的多元化產(chǎn)品和解決方案,可以使用并產(chǎn)生可以共享的可視化。
可視化模板— 可創(chuàng)建豐富的 VizJSON 可視化模板集供重用,第三方可以輕松地?cái)U(kuò)展它們。
Web API— VizJSON 表示可以與日益流行的基于 JSON 的 Web API 結(jié)合使用。
更多信息請(qǐng)查看IT技術(shù)專欄