最近很多朋友跟我抱怨:為了公司數據好看,老板一個勁地想要數據可視化,以為可視化就是畫畫圖表這么簡單,可苦了自己天天加班做數據,但其實老板根本不懂可視化!
確實,數據可視化無疑是當今最火熱的詞,不管是做什么數據,似乎都要拿來做一下可視化才行,但很多人都對數據可視化沒有一個具體的概念,也不知道該如何實現可視化。所以,話不多說,下面就帶大家由淺入深地學習數據可視化的定義、概念、實現過程和方法。
一、什么是數據可視化
科學可視化、 信息可視化和可視分析學三個學科方向通常被看成可視化的三個主要分支。而將這三個分支整合在一起形成的新學科 “數據可視化”,這是可視化研究領域的新起點。
廣義的數據可視化涉及信息技術、自然科學、統計分析、圖形學、交互、地理信息等多種學科。
1、科學可視化
科學可視化是科學之中的一個跨學科研究與應用領域,主要關注三維現象的可視化,如建筑學、氣象學、醫學或生物學方面的各種系統,重點在于對體、面以及光源等等的逼真渲染,目的是以圖形方式說明科學數據,使科學家能夠從數據中了解、說明和收集規律。
2、信息可視化
信息可視化是研究抽象數據的交互式視覺表示以加強人類認知。 抽象數據包括數字和非數字數據,如地理信息與文本。柱狀圖、趨勢圖、流程圖、樹狀圖等,都屬于信息可視化,這些圖形的設計都將抽象的概念轉化成為可視化信息。
3、可視分析學
可視分析學是隨著科學可視化和信息可視化發展而形成的新領域,重點是通過交互式視覺界面進行分析推理。
二、為什么需要數據可視化
人類利用視覺獲取的信息量,遠遠超出其他器官,而數據可視化正是利用人類天生技能來增強數據處理和組織效率。
可視化可以幫助我們處理更加復雜的信息并增強記憶。
大多數人對統計數據了解甚少,基本統計方法(平均值、中位數、范圍等)并不符合人類的認知天性。 最著名的一個例子是 Anscombe 的四重奏,根據統計方法看數據很難看出規律,但一可視化出來,規律就非常清楚。
三、如何實現數據可視化
在技術上,數據可視化最簡單的理解,就是數據空間到圖形空間的映射。
一個經典的可視化實現流程,是先對數據進行加工過濾,轉變成視覺可表達的形式(Visual Form),然后再渲染成用戶可見的視圖(View)。
可視化技術棧
具備專業素養的數據可視化工程師一般來說需要掌握以下技術棧:
- 基礎數學:三角函數、線性代數、幾何算法
- 圖形相關:canvas、svg、webgl、計算圖形學、圖論
- 工程算法:基礎算法、統計算法、常用的布局算法
- 數據分析:數據清洗、統計學、數據建模
- 設計美學:設計原則、美學評判、顏色、交互、認知
- 可視化基礎:可視化編碼、可視分析、圖形交互
- 可視化解決方案:圖表的正確使用、常見的業務的可視化場景
四、常用的數據可視化工具
學術界用得比較多的是R語言、ggplot2、Python可視化庫等,普通用戶喜聞樂見的是 Excel,商業上的產品是Tableau、DOMO、 FineBI等等,是個精彩紛呈的世界。
1、D3
D3.js 是一個基于數據操作文檔的 JAVAScript 庫。 D3 可以將強大的可視化組件和數據驅動的 DOM 操作方法完美結合。
評價:強大的 SVG 操作能力,可以非常容易的將數據映射為 SVG 屬性,還集成了大量數據處理、布局算法和計算圖形的工具方法,有著強大的社區和豐富的 demo,但是API 太底層,復用性低,學習與使用成本高。
2、HighCharts
HighCharts 是一個用純 JavaScript 編寫的圖表庫, 能夠簡單便捷的在 Web 應用上添加交互性圖表。這是在 Web 上使用最廣泛的圖表,企業使用需要購買商業授權。
評價:使用門檻極低,兼容性好,且使用廣泛,非常成熟,但是樣式比較陳舊、圖表難以擴展,商業上使用需要購買版權
3、ECharts
企業級圖表,開源來自百度數據可視化團隊,是一個純 Javascript 的圖表庫,可以流暢的運行在 PC 和移動設備上,兼容當前絕大部分瀏覽器。
評價:豐富的圖表類型,覆蓋主流常規的統計圖表,而且配置項驅動,三級個性化圖表樣式管理,但是靈活性上不如 Vega 等基于圖形語法的類庫,一些復雜關系型圖表比較難定制
4、Leaflet
Leaflet 是面向移動設備的交互式地圖的 JavaScript 庫。 測量的 JS 只有大約 38 KB,它具有大多數開發人員需要的所有映射功能。
評價:專門針對地圖應用,mobile 兼容性良好,API 簡潔、支持插件機制,但是功能比較簡單,需要具備二次開發能力
5、Vega
Vega 是一套交互圖形語法,定義了數據到圖形的映射規則、常見的交互語法和常見的圖形元素,用戶可以自由使用 Vega 語法進行組合構建出各種各樣的圖表。
評價:完全基于 JSON 語法,提供從數據到圖形的映射規則,支持常見的交互語法,但是其本身有著復雜的語法設計,使用和學習成本很高
6、deck.gl
deck.gl 是 Uber 可視化團隊基于 WebGL 開發的面向大數據分析的可視化類庫。
評價:主要以 3D 地圖可視化為主,內置了地理信息可視化常見的場景,支持大規模數據的可視化,但是需要具備 WebGL 的知識,層的擴展比較復雜
7、FineReport
FineReport報表軟件是一款純Java編寫的、集數據展示(報表)和數據錄入(表單)功能于一身的企業級web報表工具,僅需簡單的拖拽操作便可以設計復雜的中國式報表,搭建數據決策分析系統。
評價:可以直連數據庫,方便快捷的定制各種復雜表樣,用來做出固定格式的周報、月報等。它的格式類似于excel界面,特色功能報表制作,報表權限分配,報表管理還有填報,支持多種數據庫。
8、Tableau
Tableau是桌面系統中最簡單的商業智能工具軟件,沒有強迫用戶編寫自定義代碼,新的控制臺也可完全自定義配置。在控制臺上,不僅能夠監測信息,而且還提供完整的分析能力。
評價:全球知名的BI工具,價格6000元/年/人左右,但是國外產品不花錢不會為你做任何定制化改動,售后很有問題。
9、FineBI
FineBI是商業智能BI工具,與Tableau類似,都主張可視化的探索性分析,有點像加強版的數據透視表。上手簡單,可視化庫豐富。可以充當數據報表的門戶,也可以充當各業務分析的平臺。
評價:FineBI做到了自助式分析,圖表類型豐富,數據分析功能較強大,鉆取,篩選,分組等功能都有。
10、Power BI
Power BI 是一套商業分析工具,用于在組織中提供見解。可連接數百個數據源、簡化數據準備并提供即席分析。生成美觀的報表并進行發布,供組織在 Web 和移動設備上使用。
評價:類似于excel的桌面bi工具,功能比excel更加強大。支持多種數據源。價格便宜。但是只能作為單獨的bi工具使用,沒辦法和現有的系統結合到一起。
總結
數據可視化是個龐大的領域,涉及的學科非常多,但正是因為這種跨學科性,讓可視化領域充滿活力與機遇。
更多關于數據分析的干貨,可以關注我的微信公眾號“數據分析不是個事兒”獲取更多!