隨着 DT 時代的到來,傳統的統計圖表很難對複雜數據進行直觀地展示。這幾年數據可視化作爲一個新研究領域也變得越來越火。成功的可視化,如果做得漂亮,雖表面簡單卻富含深意,可以讓觀測者一眼就能洞察事實併產生新的理解。可視化(visualization和可視效果(visual)兩個詞是等價的,表示所有結構化的信息表現方式,包括圖形、圖表、示意圖、地圖、故事情節圖以及不是很正式的結構化插圖。

基本的可視化展現方式,如條形圖、折線圖、餅圖、雷達圖可以很容易通過各種軟件(如 Excel)容易生成,這些方法是常見可視化問題的良好且強大的解決方案。然而,使用這些方法的最佳方式侷限於一些特定的數據類型,而且其標準型和普遍性意味着它們基本無法達到新穎性。如果對地理空間數據、社會網絡關係、多維數據進行可視化,直觀地傳遞數據期望表達的信息是需要特定的圖表類型來展示。

讓我們一起來看幾個經典的可視化,觀測它們是如何充分利用其源數據結構的。

01

“美國大選”數據可視化

在美國大選期間,美國媒體做了不少與之相關的數據報道,讓我們來回顧一下,他們是如何將美國大選的數據可視化的吧!

下圖爲各洲“選舉人票”的佔比情況。作者設計了兩種表現方法,一是以“選舉人票”的分佈做爲底圖,一是直接以美國地圖作爲底圖。除此圖上方雙方選舉人票總體數量對比外,鼠標移至各洲上方還能顯示各洲“選舉人票”數量及對希拉里與特朗普的支持比例。

關於第三方選舉人影響的情況(在只有兩種選擇和有四個選舉人的情況下,選民的態度又是怎樣呢?

特朗普的粉絲更多的是公立學校出身,而希拉里的則大都爲精英階層。

希拉里的粉絲大都較爲“書生氣”,使用與書籍相關的詞彙,其中有很多被認證爲教授或博士;而特朗普的粉絲更加喜歡流行文化,他們可能同時是流行歌手的粉絲,也更加關注球類運動等。

02

社會關係可視化

社會網絡分析(Social Netwrok Analysis,SNA是在傳統的圖與網絡的理論之上對社會網絡數據進行分析的方法。隨着人類進入了移動互聯網時代,社會網絡數據成了重要的數據資源。SNA 的本質是利用各樣本間的關係來分析整體樣本的羣落現象,並分析樣本點在羣落形成中的作用以及羣落間的關係。

近幾年手機端網遊越來越重視遊戲用戶社交性設計。這款遊戲的玩法設計特別強調強社交性:用戶可以在遊戲內組建家族,家族成員有不同的職務等級,用戶也可以在遊戲內給好友贈送道具。我們從數據庫中收集抽取了部分用戶的家族數據Nodes和好友溝通數據Links。其中 Nodes 數據集包括 ID用戶ID、Label用戶名稱、Group所屬家族、Level等級的信息;Links 數據集包括Source發起方、Target(接收方)和 Weight鬥氣數量信息。

從網絡圖可以看出,不同家族的成員基本緊密聯繫在一起,並通過一些關鍵成員與其他家族成員聯繫。例如我們發現右下角的那個社羣的成員先通過 user1 用戶、再通過 user12 用戶跟其他社團成員聯繫在一個大網絡圖中。

我們也可以用 Gephi 軟件快速繪製社會網絡圖,並對其進行美化。

03

地理信息可視化

在第一個例子中,我們已經見識到了地理信息可視化的魅力。接下來我們簡單瞭解下如何利用 Remap 包快速繪製可交互的地圖數據可視化。目前託管在 GitHub:https://github.com/lchiffon/REmap。

百度遷徙圖是近年來非常流行的一種地理信息可視化,可以通過連線動態查看人口流向。此處給大家繪製一幅動態航班圖的地理信息可視化圖,查看動態效果。

也可以利用 Remap 快速實現未來 天氣預報 。

還可以把一些各地舉行的會議事件在地圖上進行可視化展示,下圖是 2015 年中國 R 語言會議在各個城市舉行的可視化展示。

城市熱力圖也是近年來非常流行的一種地理信息可視化方式,通過顏色的深淺表示不同地區的實際數值大小。

通過以上的幾個小例子,相信大家已經驚歎於上面的可視化效果,給人眼前一亮、耳目一新的感覺。以上可視化並未運用到很高深的技術,如果你也掌握以下一些可視化知識,也能繪製出以上圖表的效果。接下來,就給大家介紹幾個常用的交互數據可視化手段:D3、Echarts和R(R是一款數據分析挖掘軟件,但是其擁有強大的可視化功能,並能集成D3、Echarts圖庫,實現交互繪圖)。

D3( https://d3js.org/ )

D3 是最流行的可視化庫之一,它被很多其他的表格插件所使用。它允許綁定任意數據到 DOM,然後將數據驅動轉換應用到 Document 中。你可以使用它用一個數組創建基本的 HTML 表格,或是利用它的流體過度和交互,用相似的數據創建驚人的 SVG 條形圖。

比如 D3 可以非常容易地繪製交互桑基圖。桑基圖(Sankey diagram),即桑基能量分流圖,也叫桑基能量平衡圖。它是一種特定類型的流程圖,圖中延伸的分支的寬度對應數據流量的大小,通常應用於能源、材料成分、金融等數據的可視化分析。桑基圖最明顯的特徵就是,始末端的分支寬度總和相等,即所有主支寬度的總和應與所有分出去的分支寬度的總和相等,保持能量的平衡( 動圖鏈接)。

可以通過 D3 對 Sunburst Partition 可視化探索。通過解析布點獲得的用戶行爲路徑數據,我們可以用最簡單與直接的方式將每個用戶的事件路徑點擊流數據進行統計,並用數據可視化方法將其直觀地呈現出來。D3.js 是當前最流行的數據可視化庫之一,我們可以利用其中的 Sunburst Partition 來刻畫用戶羣體的事件路徑點擊狀況。從該圖的圓心出發,層層向外推進,代表了用戶從開始使用產品到離開的整個行爲統計;Sunburst 事件路徑圖可以快速定位用戶的主流使用路徑。通過提取特定人羣或特定模塊之間的路徑數據,並使用Sunburst 事件路徑圖進行分析,可以定位到更深層次的問題。靈活使用 Sunburst 路徑統計圖,是我們在路徑分析中的一大法寶。

ECharts( http://echarts.baidu.com/)

ECharts,縮寫來自 Enterprise Charts,商業級數據圖表,一個純 Java 的圖表庫,可以流暢的運行在PC和移動設備上,兼容當前絕大部分瀏覽器(IE6/7/8/9/10/11,chrome,firefox,Safari等),底層依賴輕量級的 Canvas 類庫 ZRender,提供直觀,生動,可交互,可高度個性化定製的數據可視化圖表。創新的拖拽重計算、數據視圖、值域漫遊等特性大大增強了用戶體驗,賦予了用戶對數據進行挖掘、整合的能力。

ECharts 3 還新增更多圖表類型,更好的滿足不同數據的處理需求 更多的搭配方案讓你的數據呈現方式更個性和完美。

比如 地圖信息 可視化:

利用 ECharts 繪製桑基圖 。

R( https://www.r-project.org/)

R 語言是一套開源的數據分析解決方案,幾乎可以獨立完成數據處理、數據可視化、數據建模及模型評估等工作,而且可以完美配合其他工具進行數據交互。R 語言擁有頂尖的製圖功能,不僅有 lattcie 包、ggplot2 包對複雜數據進行可視化,更有 rCharts 包、recharts 包、plotly 包實現數據交互可視化,甚至可以利用功能強大的 shiny 包實現 R 與 web 整合部署,構建網頁應用,幫助不懂 CSS,HTML 的用戶能利用 R 快速搭建自己的數據分析 APP 應用。

比如我們可以繪製動態交互的氣泡圖,通過下面的時間軸播放動態查看不同年份的氣泡情況。

也可以利用 networkD3 包調用 D3.js 庫,繪製社會網絡圖和桑基圖。

前文我們已經瞭解了幾種常用的數據可視化技術。接下來,讓我們一起來學習下創建有效的可視化的步驟。我們通常會按照下述的幾個關鍵步驟進行:

  1. 你有什麼數據?數據有哪些分類?
  2. 關於數據你想了解什麼?
  3. 應該使用哪種可視化方式?
  4. 能夠進行可視化的工具有哪些?
  5. 透過可視化你看見了什麼,有什麼意義?

最後,複雜高維數據無法用單一的靜態圖表進行直觀地展示,因此需要藉助可視化手段讓數據動起來,更好地發現數據價值。比如說有不同組別的數據,我們想查看各組別間的數據和總計時,此時就可以通過交互式探索的形式進行展示。

還可以結合自己掌握的數據分析和可視化技術,搭建數據可視化平臺,從而實現智能 BI 的可視化功能。比如說,我們不需要具備開發能力,利用 R 工具的shiny包可以快速搭建數據可視化原型。下面這個例子( https://www.showmeshiny.com/global-terrorism/)就是一個通過 shiny 包結合可視化技術實現的一個可視化平臺。

案例上手 Python 數據可視化

相關文章