小心,這餅有毒!論餅圖的正確打開方式

你是否有這樣的困惑?

  • 我的這些數據,好像柱狀圖、折線圖、餅圖都能表示啊,到底應該選哪個?
  • 餅圖和環形圖也差不多,取決於我要不要在中間顯示其他內容嗎?
  • 我可不可以將數據映射到餅圖的半徑維度上?
  • ……

到底什麼時候該用餅圖?使用的時候有哪些注意事項?作為最常用的圖表類型之一,你真的了解餅圖應該怎麼用嗎?

想寫這篇文章很久了,遲遲沒有動筆。直到這周第三次和同事爭論『南丁格爾圖用半徑比而非面積比表示數據比是否合適』之後,我覺得實在有必要寫下本文。

做可視化的時候,最重要的是什麼

大霧……

做可視化最重要的一定不是帥!

而是明確你想通過可視化的方式講什麼故事——也就是你的論點是什麼。

我們說『一圖勝千言』,好的圖表是應該作為一種論證方式證明你的論點的,如果沒有這個『論點』,只是把圖表隨意地放在那裡,那就和你放了一堆沒有分析的數據在用戶面前一樣沒用。

既然如此,一個圖表是否正確地起到了傳達論點的作用,才是最關鍵的。

面積與半徑之爭

傳統的餅圖用角度比表示數據比,因為半徑是相同的,所以面積比也是數據比。這一點是符合我們的認知常識的。

『南丁達爾圖』是一種用同樣角度、但是不同半徑的扇形表示數據比例的圖,其中扇形的半徑比等於數據比,如下圖的第一種圖所示。但是在這種情況下,扇形的面積比就等於數據比的平方。那麼,在不加說明『該圖的半徑比等於數據比』的情況下,讀者究竟會將半徑還是面積視為數據比呢?

在寫這篇文章之前,我做了一個小問卷,你也可以問一下自己。以下的三個圖中,你認為『郵件營銷』的數據分別是『直接訪問』的多少倍?

很多人做完以後問我正確答案。

但什麼是『正確』的答案呢?

這就好比你看完一本書,想要知道自己對某些情節寓意的理解正不正確。所謂『正確』,指的是你所理解的和作者想表達的是一致的(暫時不考慮作者想表達多元寓意的情況),至於你所理解的這件事本身是不是一個真理則無關緊要。舉個例子來說,以《西遊記》為例,假如一個讀者從『三打白骨精』的故事中解讀出了『人很容易被表面現象蒙蔽,看不到事情的本質』,而如果作者的確是想表達這個意思,那麼這種解讀就是『正確』的;至於人是不是真的很容易被矇騙則跟理解的正確性無關。

對於一個圖表而言,作者想表達的意圖,是不是真正被讀者理解才是重要的;至於作者想表達的本身是不是正確,則不在可視化理論的範圍內。本文將從減少讀者對圖表作者意思的錯誤解讀的角度,探討在選擇圖表類型的時候,需要注意的事項。

其實,『直接訪問』和『郵件營銷』的數據在上面每個餅圖中均為 1:2。而上面的三種餅圖的變種,因為不同的視覺映射方式(第一種圖將數據映射到半徑;第二種圖將數據映射到半徑和角度;第三將圖將數據映射到角度)給讀者的理解上帶來了困擾。

需要注意的是,如果你在任何一個選項中選擇了 2 倍之外的答案,錯誤都不在於你,而在於作者有意或無意地傳遞錯了信息。

我這裡之所以提到『有意』,是因為的確有很多圖表,就是出於迷惑讀者的目的,被作者刻意傳遞出偏離真相的意思的。

一個常見的例子是,金融理財產品會顯示每日收益率的變化圖,但是收益率通常在一周的尺度上變化不大。如果想要誇張地表現某個產品在一周內收益率的提升幅度,一個狡猾而常見的套路就是,把本該從 0 開始的坐標軸,偷偷換成最低的數據值,這樣相對而言數據的變化幅度就很明顯了。之所以說這是在誤導讀者,並不是這圖本身有邏輯上的錯誤,而是利用了讀者認為『坐標軸肯定是從 0 開始的』這樣的心理。

將數據映射到半徑或角度本身並沒有對錯之分,但是如果作者不給出足夠的信息說明,因而導致讀者理解上產生偏差,這個過錯不在於讀者或圖表庫,而只在於作者。

讓我們來看看問卷調查的結果。截止到本文發表前,共收到 202 份回答。

順便說一句,我上面做的是比較好的餅(羨轍賣餅,自賣自頂):

首先,餅圖中的類目不應太多,否則信息很分散,不知道作者想表達什麼信息。

其次,餅圖的顏色不要五顏六色,除了用以區分類目之外,顏色還可以傳遞更多有效信息。比如上圖用綠色表示正確,灰色表示錯誤,是符合一般對顏色的認知的,並且綠色的類目更醒目,第一眼就能關注到;相反,如果用普通的三種顏色表示三個類目,則讀者很難一眼從圖中解讀出有效信息。

第三,區分出想表明特定意思的類目。比如上圖將正確的類目和錯誤的類目分隔開,讀者很容易抓取到關鍵信息。

那麼,這個統計結果說明了什麼呢?

從第三種圖的結果來看,即使是標準的餅圖,也有超過 10% 的讀者錯誤解讀了。這一點可能有些出乎意料之外,但其實在餅圖中,數據比要通過角度比察覺,的確不如柱狀圖比較長度來得直觀

對於第一種圖(南丁格爾圖),注意重點不是『60% 的讀者解讀正確了』,而是『40% 的讀者誤解了』。想像一下,你做的圖表有四成用戶理解錯了是一件多麼可怕的事!

然而更可怕的是,對於同時映射到半徑和角度的第二種圖,用戶簡直就完全分不清了。

從統計結果得到的結論

從上面的結果我們可以發現,當數據映射到半徑而非面積的時候,會造成面積比不等於數據比,這很可能會引起讀者的誤會。

因而在設計圖表的時候——

  • 首先,作者一定要了解這一誤解的存在(這也是我為什麼要寫這篇文章);
  • 其次,要給予讀者足夠的線索了解,是半徑比而非面積比表達的數據比(比如通過文字說明);
  • 在有條件的情況下,最好進行一定的調研確保絕大部分讀者能夠理解正確(這一比例至少應該比較接近一般的餅圖)。

讀者是弱勢群體,他們無法針對帶有歧義的圖表進行提問,甚至可能大多數情況下,他們都沒察覺到這一現象的存在。而利用這種信息不對稱性,將圖表設計得有歧義,如果不是出於無知,就是太過無恥了。

南丁格爾圖的適用場景

雖然南丁格爾圖和上面的第三種圖(ECharts 特有)比較容易引起讀者的誤會,但是對於特定的應用場景仍然是有價值的。比如當扇形比較多的時候,用餅圖常常會有很散亂的感覺,而用南丁格爾圖就有一種整齊的美感。由於扇形比較多的情況下角度較小,形狀較接近柱狀圖,因而引起的誤差也較小。在這樣的場景下,南丁格爾圖不妨為一種好的可視化選擇。

所以,不能怪圖表庫提供這種容易引起歧義的圖表類型,而在於作者對於自己創建的圖表缺乏必要的認識,導致在實際的場景下使用了錯誤的圖表。這一點,一方面以後我們會在 ECharts 的文檔和教程中加以更多的說明,另一方面也需要大家提高對可視化知識的了解。

下面是一個我虛擬了數據的例子,在這個圖中,有 24 個扇形,觀察每個扇形比例的時候,注意力更容易集中在扇形的半徑上。由於半徑比也就是數據比,在這樣的場景下,南丁格爾圖是不錯的選擇。

南丁格爾圖本身帶有一些誇張的效果,作為圖表的創建者,應在告知讀者正確的閱讀方法的情況下謹慎使用。

餅圖 vs. 柱狀圖 vs. 折線圖

這三種圖僅從風格上看,就是風馬牛不相及的。但是,我們倒常常會產生這樣的困惑——好像我的這個數據,用餅圖也可以,用柱狀圖、折線圖也行。我究竟應該如何選擇呢?

很多人是從視覺效果上選擇的,比如如果數據比較少,用折線圖的話,畫面就太空,於是選擇了柱狀圖;看著 ECharts 的餅圖挺好看的,那就用餅圖吧。這種方式不得不說是比較偷懶的,因為懶得研究用哪種圖表比較好,就隨便用了一種順手的。

其實,我們應該從圖表類型的隱喻上進行區分

餅圖表達的是一個整體局部的關係,也就是一個部分佔據整體的多少比例。柱狀圖和折線圖較為接近,通常前者表示不同對象數據的對比,後者更常用作表示同一對象數據在不同(時間)維度上的趨勢。當然,這三種都是非常通用的常見圖表,因此應用場景的變化也很多,用這樣的規律概況可能不盡準確。但仍然重要的是,在你選擇了一種圖表類型的時候,記得多問一下自己,為什麼選了這種圖表,而不是另一種

比如,下圖是一個常見的使用餅圖的錯誤場景,是問卷星提供的我上面做的問捲來源的統計。

雖然從邏輯上說,這表示來源是各城市的數據量佔總體的比例,這一點沒有問題。但是,這一圖表傳遞的信息卻很雜亂,讀者很難抓到重點。而且上文提到過,其實從扇形的角度感知比例是比較困難的。相比之下,下圖用柱狀圖(因為是橫著的,也可以成為條形圖)就清楚多了(不過這個柱狀圖的文字和數據對不上,也是存在問題的)。

理論上,上面的圖也能用折線圖表示,但是會給人以奇怪的暗示,表示數據的變化趨勢。折線圖更適合用於『在一定時間內,溫度的變化情況』這樣的場景。

餅圖 vs. 環形圖

環形圖就是餅圖中間挖了個洞。除了可以解肚子餓之困,通常因為中間可以寫一些額外的信息而被使用。

不過同樣需要小心的是,有可視化理論認為,這樣的洞可能影響到讀者對於數據比例的認知,所以在選擇的時候也需要謹慎。

小結

可視化是一個工具,用來幫助人們更快速直觀地理解抽象的數據,它常常是基於約定俗成、甚至不言而喻的共識。因而,當我們說一種可視化方法是『正確』的,並不意味著它像數學上那樣嚴謹地『正確』,而是說,絕大部分人對此不會產生歧義。

從圖表創建者的角度,我們希望儘可能地消弭這一誤解;而從圖表庫維護者的角度,我們更希望圖表創建者能夠深刻地理解這些共識和潛在的歧義,幫助創建者做出更得心應手的圖表,也幫助讀者領會創建者的良苦用心。

很多時候,武器的強大並不必然帶來決鬥的勝利。但更多時候,我們之所以產生這樣的埋怨,其實是因為對武器缺乏足夠的認識,因而難以發揮出絕世好刀的強大功效,甚至反而為其所累。

明白了這一點,大概也就比較能體會,我們在為大家磨練出最強大利器的同時,是多麼希望大家對武器本身能有更多了解。


推薦閱讀:

Power BI應用場景賞析-財務篇
[E1-06]數據錄入
AntV,返璞歸真幻化萬千可視化表達(附演講視頻)
不經意間又發現了一個有趣又炫酷的包~
高維分面應用——ggplot2分面氣泡圖餅圖

TAG:数据可视化 | 图表 | 可视化 |