這是我看過最走心的數據可視化文章了,看完血賺!

注:本文轉載自 https://antv.alipay.com/zh-cn/vis/blog/vis-introduce.html

一、什麼是數據可視化

科學可視化(Scientific Visualization)、 信息可視化(Information Visualization)可視分析學(Visual Analytics)三個學科方向通常被看成可視化的三個主要分支。而將這三個分支整合在一起形成的新學科 “數據可視化”,這是可視化研究領域的新起點。
——《數據可視化》

廣義的數據可視化涉及信息技術、自然科學、統計分析、圖形學、交互、地理信息等多種學科。

科學可視化

科學可視化(Scientific Visualization)是科學之中的一個跨學科研究與應用領域,主要關注三維現象的可視化,如建築學、氣象學、醫學或生物學方面的各種系統,重點在於對體、面以及光源等等的逼真渲染。科學可視化是計算機圖形學的一個子集,是計算機科學的一個分支。科學可視化的目的是以圖形方式說明科學數據,使科學家能夠從數據中瞭解、說明和收集規律。

信息可視化

信息可視化(Information Visualization)是研究抽象數據的交互式視覺表示以加強人類認知。抽象數據包括數字和非數字數據,如地理信息與文本。信息可視化與科學可視化有所不同:科學可視化處理的數據具有天然幾何結構(如磁感線、流體分佈等),信息可視化處理的數據具有抽象數據結構。柱狀圖、趨勢圖、流程圖、樹狀圖等,都屬於信息可視化,這些圖形的設計都將抽象的概念轉化成爲可視化信息。

可視分析學

可視分析學(Visual Analytics)是隨着科學可視化和信息可視化發展而形成的新領域,重點是通過交互式視覺界面進行分析推理。

科學可視化、信息可視化與可視分析學三者有一些重疊的目標和技術,這些領域之間的邊界尚未有明確共識,初略來說有以下區分:

二、爲什麼需要數據可視化

人類利用視覺獲取的信息量,遠遠超出其他器官

人類的眼睛是一對高帶寬巨量視覺信號輸入的並行處理器,擁有超強模式識別能力,配合超過 50% 功能用於視覺感知相關處理的大腦,使得人類通過視覺獲取數據比任何其他形式的獲取方式更好,大量視覺信息在潛意識階段就被處理完成,人類對圖像的處理速度比文本快 6 萬倍。

數據可視化正是利用人類天生技能來增強數據處理和組織效率。

可視化可以幫助我們處理更加複雜的信息並增強記憶

大多數人對統計數據瞭解甚少,基本統計方法(平均值、中位數、範圍等)並不符合人類的認知天性。最著名的一個例子是 Anscombe 的四重奏,根據統計方法看數據很難看出規律,但一可視化出來,規律就非常清楚。

三、如何實現數據可視化

可視化實現流程

在技術上,數據可視化最簡單的理解,就是數據空間到圖形空間的映射。

一個經典的可視化實現流程,是先對數據進行加工過濾,轉變成視覺可表達的形式(Visual Form),然後再渲染成用戶可見的視圖(View)。

可視化技術棧

具備專業素養的數據可視化工程師一般來說需要掌握以下技術棧:

常用的數據可視化工具

在學術界與工程界,數據可視化工具都非常之多,可參考一位知乎大拿整理的文章:值得推薦的 37 款數據可視化工具,學術界用得比較多的是 R 語言, ggplot2, Python 可視化庫等,普通用戶喜聞樂見的是 Excel,商業上的產品是 Tableau, DOMO, PowerBI 等等,是個精彩紛呈的世界。

這裏有常用的 25 個數據可視化工具對比,沒有完美的可視化工具,每個工具都有各自的優缺點。下面是一張工具選擇推薦圖,根據目的分類,左上是簡單快捷,左下是故事導向,右上是爲了分享分析,右側是創新型圖表,右下是分析型工具。

四、我們常常聽說的數據可視化

數據可視化(Data Visualization)和 信息可視化(Information Visualization)是兩個相近的專業領域名詞。狹義上的數據可視化指的是將數據用統計圖表方式呈現,而信息可視化則是將非數字的信息進行可視化。前者用於傳遞信息,後者用於表現抽象或複雜的概念、技術和信息。而廣義上的數據可視化則是數據可視化、信息可視化以及科學可視化等等多個領域的統稱。
——《數據可視化之美》

我們常常聽說的數據可視化大多指狹義的數據可視化以及部分信息可視化。根據數據類型和性質的差異,經常分爲以下幾種類型:

統計數據可視化:用於對統計數據進行展示、分析。統計數據一般都是以數據庫表的形式提供,常見的統計可視化類庫有 HighCharts、ECharts、G2、Chart.js 等等,都是用於展示、分析統計數據。

關係數據可視化:主要表現爲節點和邊的關係,比如流程圖、網絡圖、UML 圖、力導圖等。常見的關係可視化類庫有 mxGraph、JointJS、GoJS、G6 等。

地理空間數據可視化:地理空間通常特指真實的人類生活空間,地理空間數據描述了一個對象在空間中的位置。在移動互聯網時代,移動設備和傳感器的廣泛使用使得每時每刻都產生着海量的地理空間數據。常見類庫如 Leaflet、Turf、Polymaps 等等,最近 Uber 開源的 deck.gl 也屬於此類。

還有時間序列數據可視化(如 timeline)、文本數據可視化(如 worldcloud)等等。

五、基於 Web 的可視化技術

在講各種流行類庫框架前,我們先了解下 Web 圖形的底層技術規範。

底層技術規範

比較流行的基礎繪圖庫,基於 SVG 的有 snap.svg、rapheal.js 等,基於 Canvas 2D 的有 zrender、g 等,基於 WebGL 的有 three.js、SceneJS、PhiloGL 等,這些基礎繪圖庫可以讓上層封裝更簡單容易。

我們重點回到基於 Web 技術的數據可視化類庫。

D3

D3.js 是一個基於數據操作文檔的 JavaScript 庫。D3 可以將強大的可視化組件和數據驅動的 DOM 操作方法完美結合。

D3 的優劣:

D3 沒有提供封裝好的組件,在複用性、易用性方面不佳,社區裏有很多基於 D3 的可視化組件庫:

D3 有着 Stanford 的血脈淵源,在學術界享有很高聲譽,靈活強大使得它成爲目前領域內使用最廣泛的可視化類庫,但偏底層的 API 和數據驅動模式,使得上手 D3 存在一定門檻,基於 D3 的工程實現上需要自己考慮和處理更多內容,如動畫、交互、統一樣式等,研發成本較高。

HighCharts

HighCharts 是一個用純 JavaScript 編寫的圖表庫, 能夠簡單便捷的在 Web 應用上添加交互性圖表。這是在 Web 上使用最廣泛的圖表,企業使用需要購買商業授權。

HighCharts 的優劣:

這是圖表界的 jQuery,在世界範圍內是使用最多最廣的一個可視化類庫,但整體圖表設計比較陳舊難以擴展,同時商業公司使用需要按照使用人數購買版權,比較昂貴,阿里有購買過,目前已不推薦使用。

ECharts

ECharts 縮寫自 Enterprise Charts,企業級圖表,開源來自百度數據可視化團隊,是一個純 Javascript 的圖表庫,可以流暢的運行在 PC 和移動設備上,兼容當前絕大部分瀏覽器,底層依賴另一個也是該團隊自主研發的輕量級的 Canvas 類庫 ZRender,提供直觀,生動,可交互,可高度個性化定製的數據可視化圖表。ECharts 是目前國內唯一一個入選 GitHub 全球可視化榜單的開源項目,2w+ star 全球排名第三,社區活躍,覆蓋主流前端框架和 8 種編程語言的擴展,目前國內市場佔有率處於絕對領先地位。

ECharts 的優劣:

ECharts 能很好滿足傳統圖表需求,但在高度靈活多樣化的可視需求面前,需要另尋出路。

Leaflet

Leaflet 是面向移動設備的交互式地圖的 JavaScript 庫。測量的 JS 只有大約 38 KB,它具有大多數開發人員需要的所有映射功能。

Leaflet 的優劣:

地圖專用,其他領域使用不上。目前 Google 地圖、高德地圖、百度地圖都擁有自研的 JS 庫。

Vega

Vega 是華盛頓大學計算機學院數據交互實驗室(IDL)開發的一套交互圖形語法,定義了數據到圖形的映射規則、常見的交互語法和常見的圖形元素,用戶可以自由使用 Vega 語法進行組合構建出各種各樣的圖表。

Vega 的優劣:

Vega 在學術上有着比較完美的語法設計,但在工程易用性上比較欠缺。

deck.gl

deck.gl 是 Uber 可視化團隊基於 WebGL 開發的面向大數據分析的可視化類庫。

deck.gl 的優劣:

deck.gl 在 3D 地圖領域效果很贊,在其他領域不適用。

基於 Web 的可視化工具還有很多,上面是幾個一直以來使用比較多的類庫工具,以及最近湧現的一些新秀。各個類庫工具特性不同,定位不同,關鍵要看應用場景的適用性。

六、大阿里的數據可視化

大阿里(阿里巴巴、螞蟻金服、菜鳥物流等集團統稱)有各種數據可視化產品和業務,如 QuickBI,信鴿地圖,阿里雲的 DataV 更是可視化大屏方面的人氣產品在領域內有着很高的讚譽。

而另一方,在數量更多的普通用戶產品,中後臺應用系統中也存在大量的數據可視化需求,在這些業務中沉澱出了很多優秀的可視化類庫與工具,如國際 UED 的 BizCharts、淘寶基礎平臺的 IceChart、集團數據技術和產品部的 Recharts 等等。在這大量的業務應用和類庫背後有一個共同的名字,AntV。

AntV 是什麼

AntV 是螞蟻金服全新一代數據可視化解決方案,主要面向從事數據可視化應用相關的工程師和設計師,目前包括:

G2

G2 (The Grammar Of Graphics) 是一個由純 JavaScript 編寫、強大的語義化圖表語法類庫,提供了一整套圖形語法,可以讓用戶通過簡單的語法搭建出無數種圖表,並集成了大量的統計工具,支持多種座標系繪製,可以讓用戶自由地定製各種圖表。

G2 的優劣:

與 ECharts 等圖表庫相比,G2 最大的優勢是靈活的圖形語法能力,可以讓用戶自由定製出各種各樣的圖表。但同時優勢也是劣勢,圖形語法的使用方式,上手的學習成本會比基於配置的 ECharts 等圖表庫高。

G6

G6 是一個由純 JavaScript 編寫的關係數據可視化類庫,提供了基本的網圖和樹圖功能,並支持多種內置佈局。G6 提供了查看和編輯兩種視圖,開發者可基於 G6 對關係圖快速進行二次開發。

G6 的優劣:

G6 是特別爲關係型數據提供的可視化類庫,對於統計型數據,請使用 G2 等類庫。G6 現階段還是非常底層的關係型可視化基礎類庫,上層直接可用的組件還比較少,需要根據業務需求進行二次開發。

AntV 發展現狀

得益於豐富的業務場景和用戶需求挑戰,AntV 經歷多年積累與不斷打磨,G2 於 2016 年 3 月份對外開放,2017 年 11 月 22 日正式開源,目前已支撐起阿里集團內外 2000 + 業務系統,通過了千萬級 UV 產品的嚴苛考驗,同時基於 AntV 的組件、工具、產品等可視化生態逐漸繁榮。

AntV 的整體產品層次圖如下:

七、寫在最後

最後補充一個小點,數據可視化一點也不神祕。在人類歷史發展的過程中,有很多的現實的數據可視化就在栩栩如生的生活裏。比如靈隱寺裏,有一個活生生的熱力圖:

還有非常反映人性的數據可視化美女圖:

數據可視化是個龐大的領域,涉及的學科非常多。但正是因爲這種跨學科性,讓可視化領域充滿活力與機遇。這篇文章僅僅是對數據可視化非常粗淺的一個概要介紹,更多內容,推薦陳爲老師編著的《數據可視化》等經典著作。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/sxZsfqK8DRhCHSkh1b6xxg