雙座標軸?絕對的反人類設計(可視化誤區系列之一)

對於研究過ggplot2的人而言,一個很奇怪的問題就是,爲何ggplot2作雙座標軸那麼難?(解決方案能夠參見Stack Overflow的這個問題。)html

做者給出的理由

但事實上,做者並不建議使用雙軸,這是他沒有在ggplot2提供相關解決方案的緣由,能夠參見這個答案ui

摘錄以下:spa

It's not possible in ggplot2 because I believe plots with separate y scales (not y-scales that are transformations of each other) are fundamentally flawed. Some problems:翻譯

  • The are not invertible: given a point on the plot space, you can not uniquely map it back to a point in the data space.設計

  • They are relatively hard to read correctly compared to other options. See A Study on Dual-Scale Data Charts by Petra Isenberg, Anastasia Bezerianos, Pierre Dragicevic, and Jean-Daniel Fekete for details.orm

  • They are easily manipulated to mislead: there is no unique way to specify the relative scales of the axes, leaving them open to manipulation. Two examples from the Junkcharts blog: one, twohtm

  • They are arbitrary: why have only 2 scales, not 3, 4 or ten?blog

You also might want to read Stephen Few's lengthy discussion on the topic Dual-Scaled Axes in Graphs Are They Ever the Best Solution?.ip

簡單地翻譯以下:ci

用ggplot2來話雙軸是不可能(譯者注:不過有其餘ugly的解決方案),緣由主要是由於我認爲,雙軸自己就是有嚴重缺陷的。這裏例句一些可能的問題:

  • 與其餘可替代的方式而言,雙軸增長咱們讀圖的難度。

  • 雙軸更可能形成誤導(有意或無心):咱們有不止一種方式改變座標軸,這使得這種(輿論)操縱得以可能。

  • 雙軸的選擇特別主觀:爲何咱們只選擇雙軸?不是3軸或4軸?

接下來,咱們能夠經過Hadley Wickham(什麼?你不認識他?回去好好看doc吧!)提供的幾個證據支持來更深刻的理解爲何Hadley沒有咋ggplot2裏設置雙軸這一看似日常的屬性。

雙軸使得讀圖難度增大(相對地)

Hadley引用的論文A Study on Dual-Scale Data Charts中介紹了四種雙座標圖:

clipboard.png

clipboard.png

  • 一類稱做切斷圖(cutout chart),這是一種可轉爲交互式的方案。圖的下方爲整個數據,上方爲一個特別關注的某一區間段的數據。

  • 另外一類爲凸鏡圖(?,Lens Chart)。和切斷圖有點相似,可是每每是在一個子圖中展示,只是某個區段的座標會放大。

  • 另外一類就是常見的疊加圖(Superimposed Chart),也就是咱們常規說的雙座標圖。做者在上面舉的例子就是Excel的方案(說好了不黑某軟的)。

  • 最後一類被稱爲斷軸圖(Broken Chart)。這種圖和切斷圖相似,區別是在於,斷軸圖是減去了部分信息而後再把軸拼起來的結果,因此理論上不會分爲子圖,且某個座標的值會有斷裂。

結果

這裏不贅述具體做者如何實施實驗的過程,只講一下做者使用的結果。論文做者實際上就是將讀圖任務區分爲判斷位置長度斜率這三個任務,來判斷受試完成三個任務所須要的時間,結果以下:

clipboard.png

首先,直接能夠看出人對三種數據可視化的基本元素的敏感程度是:位置優於長度優於斜率(這提示咱們在散點、動力圖時的方案,不過這是另外一個問題了)。

其次,也是咱們最關注的,咱們能夠發現,顯然,疊加圖的效果是最差的(沒錯,就是咱們常常用的那種)。

最後,做者作出這5種圖(包括普通單軸圖)之間的錯誤、時間的顯著性差別

clipboard.png

這裏不贅述了,圖已經很好地說明問題。

雙軸如何讓咱們誤讀的

咱們來看如下兩個用雙軸座標的例子。

例子一:bar圖(柱狀圖)

下圖是一個很常見的例子,咱們想展示4種商品出口、內銷額,若是直接採用Dodge型柱狀圖(不懂Dodge?Google一下,你會學得更多),會作出以下圖。

clipboard.png

這張圖很好的代表,內銷額明顯高於出口額。但同時,這帶來一個問題:由於出口額的量較小,放在內銷的尺度下時,他們四者之間的比較不明顯了。

一個常見的雙軸解決方案以下:

clipboard.png

Nice!咱們能夠看出出口額中四種商品之間的不一樣了。Wait a Minute!這帶來個問題了,這張圖強迫咱們比較內銷、出口額之間的差距,但顯然,在這張圖中,出口內銷額之間的的高度是沒有意義的。顯然,這又不能讓咱們比較之間的差距。

咱們能夠得出如下結論:

項目 單軸 雙軸
表現不一樣x座標的差距 能夠,但不夠明顯 能夠
比較不一樣dodge之間數據的差距 能夠 不能夠
是否形成誤讀,或延長讀圖時間 不是

顯然,咱們能夠得出結論,兩個方案都有問題,但總的來講,單軸的優點更多,更不會引發誤讀,或者你具備絕對強大的心裏和邏輯思惟能力,但你卻花了更多的時間用在「讓本身作數據上的聖人上」。顯然,優秀的設計不該該如此。

來看做者(略微UGLY)的解決方案(想省圖看來是不可能的了):

clipboard.png

例子二:折線圖

這裏,咱們想要比較的銷售額和銷售單位隨着月度變化的趨勢,一個簡單的例子就是畫出下列的折線圖

clipboard.png

這張圖處理上有三點須要注意:

  1. 採用雙軸。

  2. 兩個軸的起始值不爲0。

  3. 有交點。

做者認爲,這種圖會強調折現交點的做用,而在這張圖中,折線交點是徹底沒有意義的。

那,換成下面的方式呢?

clipboard.png

顯然,咱們還會被迫去比較兩個折線的高度,但在這裏,高度是徹底沒有意義的,甚至,和銷售額比(這點要強調),銷售單位在某一時間段的下降也是沒有意義的!!!

所以,綜上所示,做者認爲,雙軸應該是不值得提倡的,仍是換成一下原始的樣子吧。

clipboard.png

但若是實際狀況中,咱們仍是須要比較這二者之間的互動怎麼辦呢?做者想到的一個方案是採用比例的方式,以下圖:

clipboard.png

雙軸能夠操縱讀者!!!

雙軸不只能夠經過以上方式誤導讀者,一個更可怕的內容是,雙軸更可能涉及到數據行業的職業道德,由於,咱們徹底能夠經過雙軸,人爲創造一些結論。

如Hadley引用的兩個例子

clipboard.png

本圖來源

這是來自Friedman《世界是平的》中的例子,是想說明產油地區的自由程度和油價的關係。博客做者認爲,這顯然是有問題的,只要改變座標軸,這個結論就會變化。

好比,這樣

clipboard.png

再好比這樣

clipboard.png

你能夠作出多種方式,而每一種座標的選擇都致使你最後的結果不同,包括變化的明顯程度以及交點發生的時間。所以,咱們甚至能夠說,採用雙軸是不道德的。

此外,還能夠參見這個例子

結論

  1. 雙軸(指疊加圖)會增長人讀圖的時間和困難(經過強迫讀者進行一些無效比較)。

  2. 雙軸致使混入分析師過多的主觀性,座標軸的尺度選擇是隨機的。

  3. 雙軸可能會使讀者產生錯誤的結論。

所以,在此,能夠簡單地作出結論,雙座標軸是應該被避免的。

參考文獻

  1. Stephen Few, Perceptual Edge(2008). Dual-Scaled Axes in Graphs: Are They Ever the Best Solution? Visual Business Intelligence Newsletter.

  2. Isenberg, P., Bezerianos, A., Dragicevic, P., & Fekete, J.-D. (2011). A Study on Dual-Scale Data Charts. IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, 17(12).

相關文章
相關標籤/搜索