數據可視化的秘密


作者:Vamei 出處:http://www.cnblogs.com/vamei 歡迎轉載,也請保留這段聲明。謝謝!

 

研究數據的方法有很多,比如利用統計方法,計算數據的平均值和標准差;再比如使用模型,擬合數據。數據通常是大量的,人腦難以直接把握其中的信息。研究數據的最終目的是減小海量數據的信息量,將數據中的信息客觀的展示出來,並最終整理成簡單的,人腦可以掌握的知識。

 

數據可視化

圖形是直觀呈現數據的直接方法。然而,將大量數據在同一個圖表中畫出來並不容易。早期的測繪、天氣數據都需要長時間的手工繪制。隨着計算機繪圖功能的開發,手工繪畫已經完全被自動繪圖程序取代。問題的核心轉移為,要以怎樣的方式呈現數據,以便數據中的信息能自然的體現出來。數據可視化(data visualisation)就是研究如何利用圖形,展現數據中隱含的信息,發掘數據中所包含的規律。它是一門橫跨計算機、統計、心理學的綜合學科,並隨着數據挖掘和大數據的興起而進一步繁榮。

 

下面一個視頻來自Hans Rosling。他是瑞典的一位醫學家,同時也是統計學家。在下面的這個BBC制作的視頻中,Hans Rosling用豐富的可視化手段,展示了近兩百年來世界各國人口和收入的演化。我給這段視頻增加了中英文字幕,以方便觀看。如果有錯誤,請見諒。

http://v.youku.com/v_show/id_XNTA3NDk0MTk2.html  

 

數據的信息維度

Hans Rosling所做的數據圖值得研究。數據展示的基本信息有2個維度:

1) x軸, 人均收入

2) y軸, 人均壽命

這兩個軸是作者想要表達的最基本信息。圖上的每個點代表一個國家,該點所在的x-y位置代表了國家的人均收入和人均壽命。人均壽命的刻度線性增長(25歲,50歲,75歲),但人均收入的刻度是指數增長(400元,4000元,40000元)。人均收入的刻度非常值得注意,否則很容易給人造成錯誤的印象。比如說三個國家A,B,C,人均收入分別為40, 4000, 40000元。盡管在圖表中,A和B,B和C都只相差一個刻度,但C和B的收入差距實際上A和B收入差距的10倍!

 

此外,還有兩個維度的輔助信息:

3) 圓圈大小,國家人口

4) 圓圈顏色,國家所在區域

平面可以自然的分為兩個維度(比如上面的x和y)。為了增加其他維度的信息,我們需要考慮其他的獨立表示方法。數據點可以有尺寸大小和顏色變化。正如這里所顯示的,Han Rosling利用這兩個圖像特征來表示兩個獨立的維度(國家人口,國家所在區域)。

 

通過整個視頻中年份的變化,Han Rosling還有一個明顯的5)時間維度。利用動畫的形式來記錄信息隨時間的變化狀況,是數據可視化中常用的手段。然而,在使用動畫的時候需要謹慎。動畫會留給觀眾相對比較少的時間進行深入思考。所以在動畫過程中需要適當的暫停(或者截圖)來顯示一些典型狀況。

 

最后,整個數據還有一個非常隱藏的信息維度,就是Han Rosling不時的會表明某個圓圈所代表的6)國家名稱。也就是說,國家名稱也是一個隱含的,隨時可以獲知的信息。

 

 

眼見為實?

隨着Han Rosling慷慨激昂的演講,我們被帶往一個結論:這個世界的收入和壽命差距在減小。世界作為一個整體,變得更加富有也更加健康。

數據似乎是在說明這一點。或者不是?

 

比如上面兩個截圖,被用來說明國家間的差距在減小。然而,我們上面提到,收入的刻度是10倍增長的(這樣的刻度被稱為對數刻度)。所以當一個國家比較富裕之后,它的財富增長比較難以在刻度上體現出來。比如同樣增加3600元的收入,可以讓一個原來收入400元的國家跨入中間區域,而一個原來收入40000的國家幾乎原地不動。如果將x軸改為線性,那么國家間人均收入的差距將大大超越這幅圖所帶給人的直觀感受。

(而在不考慮通貨膨脹的情況下,所謂的整體收入增長的結論也不是很可靠。)

 

從y軸的信息看,整個世界的健康水平是提高了。即使是如此,我們依然要小心,比如下面兩幅圖,繪制的是相同的數據(標普500指數),唯一的差別在於y軸刻度范圍。

是否舉得第二張圖的波動更加劇烈?但兩張圖是相同的數據!可見,刻度的范圍會影響人們對數據的認知。小的刻度范圍會讓人覺得數據變化較大(即使數據本身還是一樣的數據)。

 

因此,一個圖表是由數據繪制方法兩方面構成的。圖表並不等同於數據,繪制方法有可能會影響人們的主觀認識。一個合格數據圖表應該盡量客觀的反映數據。

(當然,一個熟悉數據可視化原理的人,也可能會利用這些方法故意誇大。這在宣傳海報中常常見到。)

 

數據繪圖的要素

現在,轉換位置思考。假設,我們有一批數據,那么應該怎么來着手呈現呢?這個問題並不好回答,原因有二:

1) 數據中包含有大量的信息維度,我們只能選擇其中的一些而非全部呈現。

2) 數據的信息呈現方式多種多樣

 

我們需要先確定想要繪制的信息維度。比如上面的視頻中,六個信息維度得到呈現。而在S&P 500的繪圖中,我們只呈現了兩個維度的信息,時間和指數。如果圖像中信息維度比較少,圖表會比較容易理解; 如果信息維度多,那么圖表會比較復雜,但更容易體現多變量之間的關系。

 

每個信息維度都需要一個坐標,來表現數據在該維度上的取值。在Hans Rosling的繪圖中,六個坐標分別是:水平x軸,豎直y軸,圓圈顏色,圓圈大小,動畫幀所對應的時間,以及文字標明的國家名。這六個維度之間相互獨立,所以可以互不干擾的反映各個維度上的取值。再比如下面的條形圖和餅圖。它們都是在反映二維信息。條形圖采取了x-y的坐標。餅圖采取了文字-圓心角的坐標。

每一個坐標都需要有刻度。讀者需要根據刻度獲知數據的准確取值。刻度可以是均勻線性增長的,也可以是不均勻增長(比如對數刻度)。刻度的選擇要根據數據的特征。如果不同數據樣本在某個維度上取值差異較大,就適用於對數取值。比如下面這幅xkcd 1162的畫,就展示了不采用對數刻度的惡果。

Log Scale (xkcd 1162)

此外,刻度還需要有范圍。正如再S&P 500的繪圖中我們談到的,過大的刻度范圍會從視覺上減小波動。一個常用的刻度范圍是數據在該維度上的最大和最小值。但一些情況下,最大和最小值可能是由於錯誤狀況造成的不可靠數據,所以會采取平均值加減標准差的范圍。

在維度和刻度都選取好了之后,要再坐標軸旁標注這是什么維度,維度的單位,並在坐標軸上標注刻度值。這樣,我們才完整了數據在該維度上的信息。一個有坐標軸,有刻度但沒有標注的數據繪圖,是失敗的繪圖。讀者根本無法從中獲知數據的真實狀況。

(在Hans Rosling的繪圖中,有兩個維度的信息不完整:人口總數和國家名稱)

 

在上面完成了之后,我們需要進一步說明數據來源。我們可以采用增加文字說明的方式來實現這一點(比如增加一個標題)。

 

總結

數據可視化非常有趣。它通過技術的手段,將枯燥的數據變得生動可愛。隨着大數據時代的到來以及網絡傳播的發達,數據可視化會成為一項值得掌握的技能。這篇文章里,我通過一個很棒的視頻說明了數據可視化的一些要點,特別是信息維度的問題。我會在以后介紹一些常用的繪圖工具,將理論轉化為實踐。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM