Posted on 2012-11-05 12:03
思達商智 閱讀(253)
評論(0) 編輯 收藏 所屬分類:
Java報表設計
雙Y軸的圖表經常被很多BI廠家當成一個高級的功能。進而引導用戶感到如果有兩組數值在一個圖表上同時顯示,用兩個Y軸來控制數據的位置是一個最佳的方案。但是其實在可視化的領域,對雙Y軸的使用一直有很大的爭議。大部分的觀點是雙Y軸的使用往往弊大于利。我們在此來對這個問題做一個大致的分析,看看雙Y軸是不是真正需要。
把兩組數據同時在一個圖表上顯示,自然是因為需要對它們進行有效比較。但這樣可能會遇到兩種問題。第一,如果兩組數據的單位不同,那用一個Y軸來代表這兩個不同的概念無疑會讓讀者困惑。比如我們把盈利和折扣率放在一個圖表上,一個是絕對值,另一個是百分比。用一個軸來代表在概念上就完全錯誤了。
就算兩組數據使用的是同樣單位,但如果它們的值的區間差別很大,用同一個軸達到的效果往往是一直數據把難以組數據壓縮到不能分辨的地步。比如營業額和盈利,可能是10比1的關系。把它們放到一起,營業額會決定Y軸的區間,盈利就會被壓縮成基本一條直線。
下面是一個圖表顯示了銷售額和網站訪客數量的數據。因為數據間大小的巨大區別,訪客數據基本上沒有能夠顯示出任何有用的信息。

雙軸的解決方案是把第二組數據使用第二個Y軸。在下圖里,左面的Y軸只對應銷售額。訪客量是通過右邊新加的第二個Y軸來定位。

第二個軸的增加,無疑解決了初始的問題。兩組數據不再互相影響。它們分別使用了和它們最匹配的尺度。但兩個軸的使用也帶來來新的問題。其中最明顯的是軸與數據間對應的模糊性。當你在看圖表中的數據點時,首先需要判斷它對應的是左軸還是右軸。這樣就把圖表的易用性明顯降低。
我們在上圖里采取了一些改進的措施。為了便于讀者克服上面提到的困難,兩個軸的顏色被分別設成了和數據圖形一樣的顏色。這樣在一定程度上降低了數據和Y軸對應的難度。
我們繼續來看看還有沒有其它的解決方案。如果你使用的軟件支持,有一種選擇是把兩組數據分別畫在自己的圖表,但把這兩個圖表并列排放,同時把相同的坐標軸共用。這樣數據之間互不影響,讀者也可以很好的比較數據的趨勢。這個方案比起雙軸還有不局限于兩組數據的好處。
下圖是用
StyleScope對同樣數據做的并列圖表。

如果我們進一步分析雙軸圖表的需求,我們可以得出以下結論:
雙軸圖不能比較不同組數據之間的絕對值。因為它們是用的不同單位和刻度,不具可比性。唯一能夠比較的是數據變化的趨勢。因為把兩組數據同時放在一個圖上,我們可以比較它們變化的速度。但事實是否如此呢?我們來回顧一下雙軸圖的效果。

從這個圖里,我們能夠判斷出銷售額和訪客數變化的關系嗎?兩組數據都在增長,但總體哪一組增長的速度更快?快多少?這些都并沒有很清晰的回答。
Steve Few對這個問題有一個很好的建議。最好的方法來回答這個問題是不畫數據的絕對值,而是畫出數據變化的百分比。這樣不僅直接地表達了數據的變化率,不需要用戶再來估算。同時又避免了使用兩個Y軸的需要。因為所有的數據都變成了百分比,我們可以用同一個軸畫任意多個數據組。

我們對比一下新的圖表的效果。因為數據變化比直接被畫了出來,我們不但可以馬上看到訪客數的增長大于營業額,我們甚至可以比較準確的找到差別的具體百分數。
可以說,雙軸的圖表在絕大部分情況下是不需要的。它在解決一個問題的同時,也帶來了自己新的問題。如果我們更好地分析需求,往往可以找到更好的方案。