6個可視化美學原則,讓你的圖表驚艷所有人
在任何圖形中,一些筆墨(墨水)用于表示實際的基礎(chǔ)數(shù)據(jù),而其余一些筆墨(墨水)則用于圖形效果。一般而言,可視化應側(cè)重于顯示數(shù)據(jù)本身。我們將數(shù)據(jù)墨水比率定義為:

圖1按性別列出了平均工資(來源:勞工統(tǒng)計局,2015年),其將有助于解釋這一概念。你更喜歡哪種數(shù)據(jù)表示形式?左圖寫著“酷,你是如何制作這些陰影和三維透視效果的?”右圖寫著:“哇,女性的收入在各個方面都很低。但為什么咨詢師的差距最小呢?”

▲圖1 三維條形圖渲染陰影(左)可能看起來令人印象深刻,但它們實際上只是圖表垃圾。而僅僅展示數(shù)據(jù)(右)可以增加清晰度以及數(shù)據(jù)墨水比率
最大化數(shù)據(jù)墨水比率可以讓數(shù)據(jù)說話,這是整個可視化練習的重點。右邊的平面透視圖可以更公平地比較柱形的高度,因此,男性對女性而言看起來不像是無足輕重的角色。這些顏色在對男女各方面進行一一對比時,起到了很好的作用。
有更多極端的方法可以提高數(shù)據(jù)墨水比率。為什么我們要畫條形圖?同樣的信息可以通過繪制一個適當高度的點來傳達,如果我們繪制的點比這里顯示的8個點要多得多,那么這顯然有很大的改進。請注意,可視化數(shù)據(jù)越少越好。
可視化方法是試圖講述一個關(guān)于數(shù)據(jù)所展現(xiàn)內(nèi)容的真實故事。謊言最簡單的形式是捏造數(shù)據(jù),也有可能雖然展示的數(shù)據(jù)是真實的,但是陳述的內(nèi)容卻不符合事實。Tufte將圖表的謊言因子定義為:

圖形完整性要求最小化謊言因子,這可以通過避免采用容易誤導的技術(shù)來實現(xiàn)。不良做法包括:
無方差表示均值:兩組數(shù)據(jù)集{100,100,100,100,100}和{200,0,100,200,0},雖然其均值都是100,但是表達的故事卻不相同。如果不能用均值繪制實際點,至少要顯示方差,以清楚均值所反映的分布的程度。
在沒有實際數(shù)據(jù)的情況下進行插值:在呈現(xiàn)變化趨勢和簡化大型數(shù)據(jù)集方面,回歸曲線和擬合曲線是有效的。但是如果在圖形中不顯示這些曲線所基于的數(shù)據(jù)點,就無法確定擬合的質(zhì)量。
比例尺失真:圖形的長寬比會對我們解釋所看到的內(nèi)容產(chǎn)生巨大影響。圖6.6給出了給定財務時間序列的三幅渲染圖,除了圖表的縱橫比外,其余均相同。

▲圖2 財務時間序列的三幅渲染圖(哪一個最準確地代表了真實情況)
在最下方的圖形渲染中,曲線看起來很平整:這里沒有什么可擔心的。右側(cè)的圖中,利潤呈現(xiàn)斷崖式下滑:簡直是天塌下來了!左側(cè)圖片的曲線也出現(xiàn)嚴重下跌,但是在秋季有反彈的跡象。
哪個圖形展示的內(nèi)容是對的?人們通常習慣于按照黃金比例查看圖形曲線,這意味著寬度應該是高度的1.6倍左右。除非有充分理由說明不恰當?shù)脑颍駝t請按照這個比例向受眾進行展示。心理學家告訴我們,45度線是最容易解釋的,因此請避免使用那些被過分放大或減弱的線條形狀。
消除數(shù)字軸上的刻度標簽:即使是最嚴重的刻度失真也可以通過不在坐標軸上打印數(shù)字參考標簽來完全隱藏。只有使用數(shù)字比例尺標記,才能從繪圖中重建實際數(shù)據(jù)值。
隱藏圖中的原點:大多數(shù)圖形中的默認假設是y軸上值的范圍從零到y(tǒng)max。如果y范圍變?yōu)閥min-ε到y(tǒng)max,我們將無法直觀地比較量值。這會使最大值突然看起來比最小值大很多倍,而不是按比例縮放。
如果圖1(右)是在y取值為[900,2500]內(nèi)繪制的,這表明咨詢師正在挨餓,而不是像軟件開發(fā)人員和教師那樣獲得與藥劑師相近的薪水。只要在坐標軸上標有刻度,就可以識別這種欺騙,而不會很難捕捉。
盡管已經(jīng)知道了Tufte公式,但還是無法機械地計算謊言因子,因為需要了解失真背后的原因。在閱讀任何圖表時,了解誰繪制的圖表以及為什么繪制這些圖表非常重要。理解制表人的想法應該能讓你意識到圖表中潛在的誤導性信息。
無關(guān)的視覺元素會分散數(shù)據(jù)試圖傳達的信息。在一個令人興奮的圖表中,講述故事的是數(shù)據(jù),而不是圖表垃圾。
圖3顯示了一家公司開始在遭遇經(jīng)濟不景氣時的月度銷售時間序列。所實驗的圖形是條形圖,這是一種用于表示時間序列數(shù)據(jù)的很好的方法,同時其繪制使用了常規(guī)(可能是默認的)選項以及合理的繪圖包。

▲圖3 月底銷售時間序列(我們?nèi)绾胃倪M/簡化這個條形圖時間序列)
但是,可以通過刪除元素來簡化這個圖,使數(shù)據(jù)更加突出嗎?在仔細觀察圖4之前,請仔細考慮一下這個問題,圖4中連續(xù)對圖3進行了4次簡化處理。其中的關(guān)鍵操作包括:
解放數(shù)據(jù)(左上方):濃重的網(wǎng)格通過在視覺上對內(nèi)容的控制,而約束了數(shù)據(jù)。通常可以通過刪除網(wǎng)格或至少減少網(wǎng)格來改進圖形。
數(shù)據(jù)網(wǎng)格的潛在價值在于其有助于更精確地解釋數(shù)值。因此,在需要準確引用大量數(shù)值的繪圖中,網(wǎng)格往往具有很大的用途。強化網(wǎng)格線可以充分勝任此類任務。
停止投射陰影(右上方):這里的加深背景對圖形的解釋毫無幫助。刪除它會增加數(shù)據(jù)墨水比率,并減少干擾。
對邊框的考慮(左下角):邊框?qū)嶋H上并沒有提供任何信息,尤其是沒有定義坐標軸的上邊框和右邊框。去掉邊框,會讓圖中的數(shù)據(jù)更加突出。
利用缺少的墨跡(右下角):通過從條形圖中刪除網(wǎng)格的線而不是添加元素,可以恢復網(wǎng)格的參考價值。這使得比較那些最大數(shù)字的量級變得更容易,方法是將注意力放在條形圖中相對較小的頂部部分的大變化上,而不是放在長條形的小變化上。

▲圖4 通過刪除多余的非數(shù)據(jù)元素,對圖3連續(xù)的四次簡化
建筑師Mies van der Rohe曾說過“少即是多”。從圖形中移除元素通常比添加元素更能改善圖形的可視化。讓它成為你的圖形設計理念的一部分吧。
縮放和標注的不足會使圖形產(chǎn)生有意或無意的錯誤信息。標注需要準確地說明數(shù)字的大小,比例尺需要能夠以適當?shù)姆直媛曙@示這些數(shù)字,以利于比較。一般而言,應按比例縮放數(shù)據(jù),以填充圖表上分配給它的空間。
對于是在變量的全部假設范圍內(nèi)縮放坐標軸,還是將其縮小到僅能夠反映觀測值,明智的人可以做出正確的判斷。但是某些決定顯然是不合理的。
圖5(左)顯示了將近一百種語言在兩個變量間的相關(guān)性,由于相關(guān)性范圍在[-1,1]之間,所以在橫坐標中,他不得不使用圖中所示的區(qū)間段。從這幅圖的大片白色只捕捉到了這樣一個概念:要是使相關(guān)性接近1.0,我們可以做得更好。但這個圖在其他方面是不可讀的。
圖5(右)顯示了完全相同的數(shù)據(jù),但是坐標軸的比例尺進行了放大?,F(xiàn)在可以看到,當我們從左向右移動時,性能有了提高,并可以看清任何一門語言的分數(shù)。左側(cè)圖中,這些條形與刻度的距離太遠,很難看清具體的數(shù)值。

▲圖5 當圖中有大量空白時,縮小比例尺是很愚蠢的行為(左)。恰當?shù)目s放會讓比較變得更加容易(右)
如果在縮小了坐標軸的范圍后,導致這些條形不能被完全展現(xiàn)出來,那就出問題了,因為此時無法從條形的高度判斷其真實數(shù)值。我們在這里標注了y=0這條線,以幫助讀者理解每個條形必須是完整的。從網(wǎng)格中獲取數(shù)據(jù)也會有所幫助。
顏色越來越多地被看作圖形表達的一部分。顏色在圖表中起到兩個主要作用,即標記不同的分類和編碼數(shù)值。用不同顏色表示不同類型、集群或等級的要點,會在傳統(tǒng)的散點圖上對信息的另一個層次進行編碼。當我們試圖確定不同類間數(shù)據(jù)分布的差異程度時,這是一個很好的辦法。最關(guān)鍵的是,通過使用不同粗體原色,可以輕松區(qū)分每個等級。
所選擇的顏色最好可以讓我們自然而然地聯(lián)想到它所代表的種類。例如,應該用紅色表示損失,用綠色表示環(huán)境因素,用其國旗中的顏色表示國家,用球衣的顏色表示球隊。將男性表示成藍色,女性表示成紅色,這就為受眾解讀散點圖提供了一個微妙的線索。
用顏色表示數(shù)值尺度是一個比較困難的問題。彩虹的顏色圖在感知上是非線性的,這意味著紫色在綠色之前還是之后對任何人都不明顯。因此,當用彩虹色繪制數(shù)字時,將相似的數(shù)字以相似的顏色分組,在沒有顯式參照色階的情況下,無法察覺相對大小。圖6顯示了來自Python的MatPlotLib的幾個色階,以便進行比較。
基于亮度或飽和度變化的色階表現(xiàn)效果會更好。顏色的亮度通過將色調(diào)與灰色陰影(介于白色和黑色之間)混合來調(diào)制。飽和度是通過混合一部分灰度來控制的,其中0產(chǎn)生純色調(diào),而1是去除所有顏色。
另一種流行的色階具有明顯的正/負顏色,周圍的白色或灰色中心反射為零。因此,色調(diào)告訴了受眾數(shù)字的極性,而亮度/飽和度則反映了幅度。某些色階對色盲者來說更有幫助,特別是避免使用紅色和綠色的色階。

▲圖6 從Python的MatPlotLib中調(diào)整顏色比例,改變色調(diào)、飽和度和亮度。彩虹色地圖在感知上是非線性的,因此很難識別差異的大小
一般來說,圖中的大區(qū)域應顯示為不飽和顏色。相反,對于小區(qū)域而言,其在飽和色下表現(xiàn)更好。色彩系統(tǒng)是一個令人驚訝的技術(shù)和復雜問題,這意味著你應該始終使用已有的完善色階,而不是自己發(fā)明色階。
小型多重圖和表是表示多元數(shù)據(jù)的好方法。
多個小圖表有許多用處。我們可以使用其按類分解分布,也可以按地區(qū)、性別或時間段繪制單獨但可比較的圖表。一系列圖便于比較不同分布之間的變化。
時間序列圖使我們能夠在不同的時間點上比較相同的數(shù)量。最好是去比較多重時間序列,要么用于同一個圖上的線,要么用于反映其關(guān)系的邏輯數(shù)組中的多重圖。
本文摘編于《大數(shù)據(jù)分析:理論、方法及應用》,經(jīng)出版方授權(quán)發(fā)布。(ISBN:9787111703471)轉(zhuǎn)載請保留文章出處。

推薦理由:本書由算法領(lǐng)域的知名專家Steven Skiena教授撰寫,重點介紹了收集、分析和解釋數(shù)據(jù)所需的技能和原理。
