數據可視化,看這一篇就夠了

2021-12-30 一個數據玩家的自我修養
引言

John Snow(不是G.O.T.裡那個「私生子」)大概永遠不會想到,自己在排查霍亂傳播途徑時,在地圖上標記死於霍亂病人的「霍亂地圖」居然會被後人評為歷史上十佳數據可視化的案例,並且成為了醫藥地理學和傳染病學中一項基本的研究方法。約翰·斯諾(John Snow,1813年3月15日-1858年6月16日),英國內科醫生,曾經當過維多利亞女王的私人醫師,因在1854年寬街霍亂爆發事件研究中作出重大貢獻,被認為是麻醉醫學和公共衛生醫學的開拓者。

https://www.results.org.au/john-snow-the-epidemiologist/

在斯諾生活的年代,對霍亂的起因的主流意見是空氣汙染論(認為霍亂像黑死病一樣通過空氣傳播)。另一方意見是未被廣泛接受病菌學說。通過深入研究,在與當地居民的溝通中加上亨利·懷特海德的協助,斯諾判斷出寬街的公共水泵是汙染源,斯諾隨後使用點示圖去解釋霍亂案例爆發點是以水泵為中心。通過連接霍亂事件與地理信息的關聯,創製了著名的 「霍亂地圖」。

他將該地區的每一個水泵,以及四周的水井都標註到圖中。最後他發現最多的霍亂患者圍繞的水泵位於寬街。

新冠疫情肆虐期間,大家每天查看的疫情地圖,都得感謝祖師爺斯諾的貢獻。

回到本文的主題,關於數據可視化,數據玩家將按經典的Why-What-How邏輯為大家逐步展開。

一、為什麼要數據可視化

——Necessity for data visualization

先來舉個慄子,大家可以嘗試找出下圖中的「7」:

看累了?試試下面這張圖呢?

是不是容易太多了,這就是視覺的力量

可視化輔助決策

研究表明,人眼是一個高帶寬大量視覺信號並行GPU,帶寬在2.339G/s,相當於一個兩萬兆網卡,具有超強的模式識別能力,且對可視符號的處理速度比數字或者文本快多個數量級,在大數據時代,數據可視化是人們洞察數據內涵、理解數據蘊藏價值的有力工具。

因此,可視化常常被用來輔助決策,如上圖,中間的一張密密麻麻的客戶表,到底能得出什麼有價值的信息指導決策呢?光看一行行一列列的數據,可能需要很久才能得出一些結論,但是經過可視化,我們可以輕鬆的以各種形式的可視化快速掌握結論,從而輔助決策。

這就是:可視分析,即將信息提煉為知識,起到「觀物至知」對作用,便於決策者從複雜、大量、多維度的數據中快速挖掘有效信息。

不當可視化誤導判斷

值得注意的是,並非所有的可視化都可以指導決策,甚至不當的可視化會誤導判斷,以致做出錯誤的決策。

• 2004年前後,美國有線通信協會(NCTA)發布的報告中,用下圖聲稱美國政府的管制行為導致了企業投資下降,而在放開管制後,企業投資就大量增加。

• 乍看之下,管制的時候是左柱,投資只有140億美元,放開管制後,投資有560億美元貌似結論沒有錯誤。但這張圖有嚴重的誤導與邏輯的紕漏

• 1996-1999年間三年的數據缺失。三年可以發生很多事情,在缺乏數據的情況下,強行將1999年後的投資增長歸結於去管制,是有邏輯欠缺的。

• 左柱只總結了3年的總投資,右柱則總結了4年的總投資,這更是故意誤導觀眾,讓觀眾認為去管制後企業投資大大增加,而遊說政府放開行業管制。實際上很可能是其他因素造成的快速增長,而不僅僅是去管制。

真相到底是什麼?

可以看到,事實上96年放開管制後,隨後的三年裡企業投資並沒有顯著變化,99年以後的爆發式增長肯定是由於別的原因造成,而非單純的放開管制。

再看一個慄子:

這圖看起來,是不是16年比15年增加了特別多,實際看看坐標軸,才從59增加到60,2%不到,把坐標軸換一下:

這樣看起來就能體現出2%的增量其實沒多少了。不過,根據目的的不同,不排除有的場景也可以採用第一種展現方式。再比如前一段時間好多群都在轉的下面這張圖,縱坐標從1100萬開始,顯得2020年的1200萬簡直快到底了,是不是沒人生孩子了……

我們換成從0開始的縱坐標來看看:

這是不是正常多了,雖然也下降得不少,但是整個基數還是很大的。

不過,如果需要販賣焦慮,用上面那張圖就比較容易達到效果。

二、什麼是數據可視化

——Concept of data Visualization

發展歷程

利用人眼的感知能力對數據進行交互的可視表達以增強認知的技術稱為可視化,它將不可見或難以分析的數據轉化為可感知的圖形、符號、顏色、紋理等等,以提高數據識別信息傳遞的效率。

我們拿到的原始數據,可能是半結構化,甚至非結構化的,經過數據清洗和ETL過程,我們得到規整的結構化數據表,再通過視覺映射,我們得到需要展示的視覺結構,即按照什麼維度,展示什麼指標,最後,將視覺結構通過圖像轉換,轉化為最終的可視化圖像,呈現給決策者。

我們可以將數據可視化的發展歷程分為七個歷程。

17世紀之前——圖表萌芽

人類早在公元前6200年就掌握了觀測和繪製的能力,此後也一直通過手工的方式製作可視化作品。可視化萌芽出自地圖和一些簡單的圖表,數據也不是測量而來,目的大多是展示一些重要的信息。

人類第一幅地圖(公元前6200年)

公元950年,歐洲人畫出了基於時間變化的折線圖,用於展示太陽,月亮等行星的位置變化趨勢,開始出現如今的數據圖表的雛形。

17世紀——物理測量

17世紀以後,隨著對物理基本量(時間、距離等)的測量理論和設備的完善,製圖學理論也隨著分析幾何、概率論等學科迅速發展,17世紀末產生了基於真實測量數據的可視化作品。

人類第一幅天氣圖(1686年)

這幅圖是誰畫的呢?Edmond Halley(1656-1742),埃德蒙·哈雷,是不是挺耳熟,沒錯,就是發現哈雷彗星的那個哈雷。

Edmond Halley

圖上繪製了信風和季風的方向,「一目了然地顯示了這些風的所有不同地段和路線;據此,有可能比任何口頭描述都更容易理解」。[1].

18世紀——圖形符號

進入18世紀,人類不再滿足於地圖上的幾何信息,隨著統計理論、實驗數據分析等學科的發展,現在我們所熟悉的函數圖、抽象圖被廣泛發明。

丹麥和挪威的進出口貿易時間序列

此圖來自威廉·普萊費爾(WilliamPlayfair,1759-1823),他是來自蘇格蘭的工程師和政治經濟學家,今天我們使用的折線圖、條形圖、餅圖和面積圖都是他發明的。圖中,紅線是出口額,黃線是進口額,通過兩條折線可以很明顯的看出,1754年前,出口額小於進口額,之後出口額反超。

19世紀——數據圖形

19世紀,統計圖、概念圖等迅猛爆發,此時人們已經掌握了眾多統計數據可視化工具,包括柱狀圖、餅圖、折線圖、時間線、輪廓線等。政府規劃和運營也越來越多的採用可視化方法,19世紀下半葉,迎來了數據可視化的黃金時期。這個時期的數據可視化代表作,除了上文中提到的「霍亂地圖」,還有下面這張拿破崙東徵流圖。

1812-1813對俄戰爭中法軍人力持續損失示意圖(1869年,被譽為史上最佳可視化)

這張圖的信息量極大,是1969年法國工程師Charles Joseph Minard製作的,描繪了拿破崙1812年率軍攻佔莫斯科的行軍圖。

其中,最底層是地圖,深黃色圖形表示行軍規模,黑色圖形表示撤軍規模,線條寬度代表了軍隊的人數,可以看出從出發時開始的42w大軍,行軍規模逐漸縮減,撤軍規模逐漸增加,到達莫斯科時只剩1w人。當然,線條的走勢也是行軍/撤軍路線。

同時,底部既有橫向的時間軸,也有縱向的刻度標識了當時的氣溫。

此圖可以直觀的感受到,拿破崙的40萬大軍是如何在長途跋涉和寒冬中消耗殆盡,此次東徵也稱為拿破崙由盛轉衰的轉折點。此外,還有南丁格爾玫瑰圖:

南丁格爾玫瑰圖

沒錯,就是那位護士弗羅倫斯·南丁格爾(Florence Nightingale),護理學的奠基人。

Florence Nightingale

她的另一個身份是統計學家。「南丁格爾玫瑰圖」直觀展示了衛生條件對死亡人數的影響,因而爭取到了更好的醫療條件。

20世紀——多維數據

進入20世紀,數據可視化的黃金時期終結,主要原因是隨著數理統計的誕生,追求數理統計的數學基礎成為數據科學行業的首要目標,而圖形和可視化作為其輔助,沒有得到太多重視,多維數據可視化是這個時期可視化的重要特點。

1904年關於太陽黑子隨時間擾動的蝴蝶圖驗證了太陽黑子的周期性1970s-21世紀——交互可視化

隨著計算機的發明和應用,人們開始採用計算機編程完成可視化過程。70年代以後,隨著人機互動界面、圖形顯示設備的普及,人們獲得了將更複雜、更高維數據的可視化能力。

谷歌人體瀏覽器

自80年代末開始,Windows系統的問世使得人們能夠直接與信息交互,也極大的提升了人們對於可視化的熱情。同時,隨著高維數據和高性能計算的進一步普及,對於多維、時變、非結構化數據呈現和分析的需求也更加強烈,可交互的可視化產品開始登上歷史舞臺。

2004至今——可視分析學大數據公司Palantir為美軍分析的亞丁灣海盜概率熱點圖

進入21世紀,人們並不滿足現有可視化技術對於數據的呈現和表示,開始將可視化和數據挖掘、圖形學結合起來,以輔助用戶從大尺度、複雜、矛盾甚至不完整的數據中快速挖掘出有用的信息,以便有效做出決策,這門學科就稱為可視分析學。

主流呈現形式軟體生成分析圖

Excel、Python、Matlab和SAS等數據分析軟體經常自帶數據可視化包或工具,科研人員或技術人員可藉此對數據進行初步可視化,以繼續深入分析和挖掘,維度相對簡單,對視覺要求較低,適合技術人員初步分析或學者發表研究論文。下圖是針對16年美國大選選民學歷的可視化分析,未接受高等教育的白人比例越大(相比4年前),Trump的勝算越大,而這個比例在男性中更為明顯。

信息圖

由設計人員根據清洗過的數據,充分分析其含義後,利用illustrator、corel draw等平面設計軟體進行手動加工,同時加入註解信息獲得。可讀性趣味性很強,但相對數據準確度不高,常出現於媒體資訊或者公司行業報告中,也就是大家經常看到的「一圖看懂XXXX」。

可交互的HTML網頁(BI系統)

可藉由HTML5、JS等技術動態地、可交互地展示高維數據,非技術背景的普通用戶也可以對自己感興趣的數據進行選取和下鑽。常由多個網頁構成商業智能(BI)系統,但近年來也被媒體廣泛採用展示熱點數據。

三、怎麼做數據可視化

——How to visualize data

進入「大數據時代」後,複雜、異構、大尺度的數據中經過分析所得的知識和人類所掌握知識的差異是導致新知識發現的根源,但如此複雜的數據也往往會讓人感到困惑。利用人的強大視覺識別能力和推理分析智能來表達、分析、檢驗這些差異正是「大數據時代」數據可視化的新思路。這就要求我們在進行數據可視化時必須理解數據含義、目標明確

可視化流程獲取並清洗數據

巧婦難為無米之炊,第一步當然是要獲取結構化的,乾淨的數據,否則:

再漂亮的可視化,沒有準確的數據支撐,也是空中樓閣。不光是可視化,基於數據的分析,模型,支撐風控、營銷和運營,在缺少數據質量支撐的前提下幾乎都無從談起。

礙於篇幅,此處不再展開,後續會針對數據質量專門撰文。

理解數據含義&明確目標

做可視化,最容易進入的誤區就是,拿到一堆數據,還沒有理解數據有什麼含義,直接就開始套用圖形進行展示,把大部分時間用在美化圖表上,而完全忽略數據本身傳達的意義。下面這張圖信息量很大,可以幫助大家評估一個可視化作品是否成功。比如,把數據按照一個故事線組織起來,那多半是一個研究文檔或者提綱,再加上特定的目標和功能介紹,才可以畫出線框圖,最後加上視覺形式,才有可能變成一個成功的可視化作品。再比如,只有數據和視覺形式,那可能只是純粹的數據藝術,看起來很美,其實沒有價值,就算加上一個故事,也沒有什麼特定的用途,給不了任何啟發,只有賦予它一個特定的目標,才有可能成為一個成功的可視化。所以,明確一個可視化作品的目標是很重要的,知道了要傳達什麼信息,達到什麼目標,才知道要選擇什麼展現形式。不同的圖表類型適合表達不同的含義,比如,要比較趨勢,折線圖就比柱狀圖更合適,比如,要表達佔比,餅圖不一定比堆積柱狀圖好用。

選擇合適的展現形式

那麼,如何選擇合適的展現形式呢,畢竟,有那麼多種類的圖形:

下面列舉了常用的各類圖表及適用場景:

可視化Check List

過度設計影響信息表達

如下圖,其實只需要表現一個度量,但是卻用了三維圖形,扇面的高度不具有任何含義。

條形圖足以表達:

同樣,下圖想表現的信息過多:

看起來很美,但是看完以後完全不知所云,不如拆成幾張圖分別表達。


圖表類型不合適

想表現趨勢,卻用了柱狀圖:

換成折線圖更加直觀:


使用過多的色彩

顏色本身也傳遞了一定的信息量,過多的顏色也給人一頭霧水的感覺:

結合我們想要表現的重點,有針對性的突出一到兩種顏色即可:


避免信息過載

折線圖比較了太多系列,建議不超過三個:

同樣,和弦圖也有類似的情況:


少用3D效果

3D效果通常不能表現額外的信息,反而會造成不必要的遮擋和誤解:

改成2D的圖形效果反而更好:

眯眼測試,突出重點

一套複雜的BI看板,常常讓觀看者無從看起:

通過眯眼測試,可以看出表格中的什么元素更加突出,從而有針對性的找出重點並突出展示。

甚至可以採用動圖的形式,將不需要重點展現的圖形模糊化處理,最後突出重點:

結語

可視化的核心還是傳達信息,如果你自己還沒想清楚要傳達什麼信息,不用操之過急,想清楚以後再選擇合適的圖表進行展現即可。本文只是針對可視化的一般做法和常見圖表做了淺析,這裡推薦大家一些材料和網站,可以更好的完成可視化展現。聯合國歐洲經濟委員會出品的【讓數據有意義】,有兩部分,第一部分:數字故事寫作指南,第二部分:統計數據展示指南。

雖然是09年的兩篇文檔,但是很多思路仍然非常有借鑑意義。關注公眾號回復「讓數據有意義」獲取下載連結。

下面兩個網站可以幫助你在種類繁多的圖表中選擇合適的一種。

https://chart.guide/ 

https://datavizproject.com/

中文版的我也找到一個:圖之典,不僅有圖表的優缺點、適用場景,還有不同圖表經典的可視化案例,值得一看: 

http://tuzhidian.com/

此外,不少開源社區,以及雲伺服器的幫助文檔,都會針對不同的圖表類型進行解釋,比如qlik,aws等等。 

希望大家都能做出優秀的可視化作品。

後記

本文源自前前東家的同事 cenkai 5年前的一次分享,當時聽完印象深刻,時隔多年再翻出來寫成文字,補充了一些近期的感受和想法,希望能對大家有所幫助。


參考資料[1]

論在熱帶地區歷史上觀測到的信風與季風之成因: pp.162–163

相關焦點

  • 想要搞懂數據可視化,看這一篇就夠了!
    數據可視化無疑是當今最火熱的詞之一,不管是做什麼數據,似乎都要拿來做一下可視化才行,但很多人都對數據可視化沒有一個具體的概念,也不知道該如何實現可視化。所以,話不多說,下面就帶大家由淺入深地學習數據可視化的定義、概念、實現過程和方法。一、什麼是數據可視化科學可視化、 信息可視化和可視分析學三個學科方向通常被看成可視化的三個主要分支。而將
  • go-ElasticSearch入門看這一篇就夠了(一)
    這不Kibana出現了,解決了我的痛苦。我們可以使用Kibana工具操作ES,Kibana以Web後臺的形式提供了一個可視化操作ES的系統,支持根據ES數據繪製圖表,支持ES查詢語法自動補全等高級特性。是不是很強大,我們現在就來學習怎麼使用。
  • 鍊表看這一篇真的就夠了!
    前言有的小夥伴說沒有學過數據結構,對鍊表不是特別了解,所以今天我們就來對鍊表進行一個系統的總結,另外大家如果想提高算法思想的話,我建議還是要系統的學一下數據結構的
  • Git入門看這一篇就夠了!
    集中化的版本控制系統都有一個單一的集中管理的伺服器,保存所有文件的修訂版本,而協同工作的人們都通過客戶端連到這臺伺服器,取出最新的文件或者提交更新。下圖來源於Git官網。下面我們主要說一個關於 Git 其他版本管理系統的主要差別:對待數據的方式。Git採用的是直接記錄快照的方式,而非差異比較。我後面會詳細介紹這兩種方式的差別。
  • 香港必備APP | 實用齊全,看這一篇就夠了
    香港必備APP | 實用齊全,看這一篇就夠了通訊類💌:️WhatsApp
  • 數據可視化的七大趨勢
    Groeger提到,在華盛頓郵報上曾刊登過一個用於說明新駕照需求的駕照統計地圖,這是一個非常不錯的例子。Pong表示,儘管記者可以利用的開放數據越來越多,並且這對數據的可視化也是有利的,但這也同時意味著每個記者都在使用相同的數據。要讓自己的報導與眾不同,就必須要創建自己的數據集。
  • 數據可視化神器-Flourish
    如何開始玩耍?註冊後,點擊 「Get started for free」 就可以開始你無比愉快的數據可視化之旅了。【第2步】新建數據可視化點擊 「New visualizaiton」 ,可以看到各種各樣能使用的數據可視化模板了,根據需求選擇合適的即可。
  • matplotlib字體設置看這一篇就夠了
    ❝本文示例文件已上傳至我的Github倉庫https://github.com/CNFeffery/DataScienceStudyNotes❞1 簡介matplotlib作為數據可視化的利器,被廣泛用於數據分析之中,但不太友好的是matplotlib中書寫非英文文字內容時,如果不事先對字體進行相關設置,會發現繪製出的諸如「中文」等均顯示為「方塊亂碼」,而今天的內容,我們就來小小總結一下matplotlib中字體設置的常用技巧。
  • vue插件看這一篇就夠
    vue-touch-keyboard - VueJS虛擬鍵盤組件vue-chartkick - VueJS一行代碼實現優美圖表vue-ztree - 用 vue 寫的樹層級組件vue-m-carousel - vue 移動端輪播組件paco-ui-vue - PACOUI的vue組件vue-cmap - Vue China map可視化組件
  • MyBatis 的執行流程,看這一篇就夠了!
    3、然後會繼續調用自己的parseConfiguration來解析配置文件,這裡面就會分別去解析全局配置文件的頂級節點,其他的我們先不看,我們直接看最後解析mappers節點5、我們先看第2種和第3中(直接配置xml映射文件的解析方式),會構建一個XMLMapperBuilder對象並調用其parse方法。
  • 網絡虛擬化,看這一篇就夠了!
    不久之前有一篇《萬字長文:IP網絡的前浪和後浪》從網工的視角介紹了IP網絡的發展變化。其中最後推薦的Cisco的大牛的Silivano Gai 的《Building-Future-Proof-Cloud-Infrastructure-Architecture》的確值得一讀。
  • 一篇文章來告訴你可視化是多麼重要
    今天這一篇文章希望通過一個例子來告訴大家可視化或者說繪圖是多麼重要。在1973年,統計學家F.J. Anscombe造了四組非常神奇的數字,這四組數字具體有多神奇呢?就是均值、方差、相關性都一樣,但是分布卻完全不一樣。
  • 17個高逼格GIF網站,看這一篇就夠了!
    Best Gif Archivehttp://bestgifarchive.tumblr.com/這是裡面最萌的圖它能將你的打字詭計錄製成gif以後,小凡再也不會回答你GIF圖是從哪找的呢看這一篇就夠了
  • 關於 Facebook NewsFeed,看這一篇就夠了!
    從數據上看,平均每個用戶每天待看的新鮮事有1500條之多,但平均每個用戶每天只能閱讀300條;從商業角度,將 Feed 排序交給上帝的做法,非常不利於商業化且有損用戶體驗,公共主頁可以使用很多伎倆吸引用戶關注,然後肆無忌憚發廣告。
  • Sql性能優化看這一篇就夠了
    例:在tb_dept中建立一個複合索引 idx_parent_id_code:然後看下兩個sql 解釋的結果:然後再看下第二條的執行計劃:這是 const 連接類型的一個特例。const: const 用於用常數值比較 PRIMARY KEY 時。eq_ref: 查詢使用了索引為主鍵或唯一鍵的全部時使用。即:通過索引關鍵字可能查找到一個符合條件的行。ref: 通過索引關鍵字可能查找到多個符合條件的行。
  • 如何快速玩轉iSteady X,看這一篇就夠了!
    那就把本篇收藏起來,快速上手iSteady X,看這一篇就夠了!
  • 淺談數據可視化
    我主要進行了少量數據處理和系統可視化部分,在這個過程中,覺得數據可視化是一個非常迷人的話題,這過程中也了解了很多相關的資料,學習了一些基礎的工具,在這裡分享給大家,也是為自己做一個整理和記錄。1、什麼是數據可視化?
  • 如何用PPT製作一份可視化的數據圖表?
    簡單來說,就是將數據進行圖形化的表達。相信很多人都看過可視化圖表,如果沒看過,上百度輸入關鍵詞「數據可視化」,可以搜到一大堆像下圖這樣的可視化圖表。在上周的一篇文章中,我答應大家只要點讚過200,我就來講講這種可視化圖表,沒想到一瞬間就夠了,自己說過的話,做過的承諾,咱必須得做到呀。
  • 一定要看:英國新冠追蹤APP正式上線!軟體使用攻略,看這一篇就夠了!
    在線君已經在今天早上親測過該軟體,如何下載、如何使用、如何讀取數據,看這一篇就夠了。  下載好這款軟體後,用戶需要輸入所在地區郵編地址的第一部分(如M23),APP自動檢測出該地區新冠疫情風險等級。但輻射範圍不大,不比掃描後二維碼的數據更加精準。
  • 玩轉Excel數據透視表排序,看這一篇就夠了!
    操作技巧是,拖動欄位邊框處即可移動該欄位的整列數據。看完動態演示,自己動手試試吧!三、數據整體排序前面兩種是透視表報表中的行列欄位的排序技巧,當然透視表也支持普通報表中的排序技術。最快捷的方法是選中數據列,然後單擊排序按鈕。比如現在要根據蘋果的銷量從高到低展示各個分公司的銷售情況,你只需要先定位到蘋果所在的列數據,然後點排序按鈕即可。