Big Data and Data Visualization
來源:中国统计网
數據可視化的道路上,充滿了不可見的陷阱和迷宮,最近ClearStory Data的兩位數據可視化開發人員,分享了他們總結出來的數據可視化開發的7個不宣之秘,普通開發者瞭解這些方法能提升視野,少走彎路。
數據可視化, 特別是基於Web的數據可視化的時代,已經到來了。 類似Java的可視化庫如D3.js, Raphal, 以及Paper.js, 以及最新瀏覽器所支持的如Canvas和SVG, 以及使得那些過去只能由電腦專家和專業設計人員,開發的複雜的可視化,變得越來越簡單了。
數據可視化,如今成為了很多網站項目的必備功能。 而類似於Platfora, DatameerClearStory Data,以及Chartio等新創公司,則可以利用基於瀏覽器的分析平台,融到數百萬美元的投資。
數據可視化是數據探索,以及數據表現的重要方式。然而, 對於數據可視化的開發者來說,依然有很多挑戰要去面對。 這些迎接這些挑戰的方法, 則是很多專業的數據可視化開發者,不願意讓別人知道的秘密。
ClearStory Data的兩位數據可視化開發人員,Nate Argrin和 Nick Rabinowitz 在 netmagzine.com上分享了他們總結出來的數據可視化開發的7個秘密,以及在實踐中如何應對的方式。
ClearStory Data的兩位數據可視化開發人員,Nate Argrin和 Nick Rabinowitz 在 netmagzine.com上分享了他們總結出來的數據可視化開發的7個秘密,以及在實踐中如何應對的方式。
秘密一: 現實中的數據往往很醜
大部分的數據可視化的教程,都會讓你輕鬆地從一個原始數據集開始。 無論你是學習基本的柱狀圖,還是力導向的網路圖,你的數據都是乾淨的,經過整理的數據。
這些完美的JSON或者CSV文件,就像電視裡的廚藝節目中的灶台,那樣乾淨整潔。而實際上,當你在處理現實中的真正的數據是,你80%的時間得用來搜尋、 獲取、載入、清洗,以及轉換你的數據。
這些完美的JSON或者CSV文件,就像電視裡的廚藝節目中的灶台,那樣乾淨整潔。而實際上,當你在處理現實中的真正的數據是,你80%的時間得用來搜尋、 獲取、載入、清洗,以及轉換你的數據。
這樣的過程,有時候可以用自動化的工具來完成。不過,差不多任何需要針對兩個以上的數據集,進行清洗的工作,總會需要或多或少的人工的工作。
有很多工具能夠把XLS文件,轉化為XML的格式,或者把時間戳轉換為其他日期格式。但是,要想把一個公司的內部使用的銷售類型與競爭對手進行比對,或者對輸入錯誤進行檢查,或者對不同的Encoding或者OCR產生出來的文字進行檢查時,就只能靠手工來處理了。
有很多工具能夠把XLS文件,轉化為XML的格式,或者把時間戳轉換為其他日期格式。但是,要想把一個公司的內部使用的銷售類型與競爭對手進行比對,或者對輸入錯誤進行檢查,或者對不同的Encoding或者OCR產生出來的文字進行檢查時,就只能靠手工來處理了。
工具及處理方式:
1)在數據可視化項目中,給數據清洗留出足夠的時間,特別是在需要處理多個數據源,需要手工登錄或者OCR數據,進行不同類別的配比,或者需要處理一些非標準格式時,需要留出更多的時間。
2)Google Refine (編者:需要翻牆)是一個很好的數據清洗工具, 儘管在有些地方,特別是處理非表格化數據時有些不足。 此外,還有一些數據清洗專用的工具,如Data Wranger 和 Mr. Data Converter。不過,很多的數據清洗工作,仍然需要你熟悉腳本語言,如Python或者需要你在Excel裡,進行一些手工工作。 記得把你的腳本存檔,你以後肯定用得上。
3)用簡單的一些散點圖或者直方圖,來發現一些超正常範圍的錯誤數據。
秘密二: 柱狀圖往往更好
和柱狀圖比起來,氣泡圖可以在同樣的空間,表現更多地數據,餅圖可以更清晰地表現整體和局部的關係,樹狀圖能夠更好地表現分層的結構。然而,這些圖在簡單明瞭方面,都無法與柱狀圖相比。
在考慮數據可視化設計方案時, 我們要問自己的第一個問題就是:「這個方案比柱狀圖好嗎?」 如果你需要在一個單一維度上,可視化一個可量化的數據集,那麼很少有別的方式,能比得上柱狀圖。
類似的, 時間序列最好表現為線狀圖,而散點圖一般用來表現兩個線性度量的相關性。在數據可視化設計中,使用這些從18世紀以來,就一直在使用的圖風險最低。而柱狀圖對於進行數據比較的可視化來說是最佳方式。因為我們人眼最習慣的比較方式,就是將兩個東西並排比較。
類似的, 時間序列最好表現為線狀圖,而散點圖一般用來表現兩個線性度量的相關性。在數據可視化設計中,使用這些從18世紀以來,就一直在使用的圖風險最低。而柱狀圖對於進行數據比較的可視化來說是最佳方式。因為我們人眼最習慣的比較方式,就是將兩個東西並排比較。
關於柱狀圖優先, 其實揭示了數據可視化中,一個最大的秘密,那就是,那些最酷的可視化往往用處反而最小。最求新奇以及美觀的可視化,往往帶來一個問題,那就是數據的可理解問題。
很多柱狀圖的替代圖,迫使人們用他們並不擅長的方式進行比較, 如比較面積、角度、色彩,或者透明度等。這些比較, 說好聽的,是增加了比較的難度,說的嚴重一些,可能會對數據進行扭曲,導致使用者得出錯誤的結論。
很多柱狀圖的替代圖,迫使人們用他們並不擅長的方式進行比較, 如比較面積、角度、色彩,或者透明度等。這些比較, 說好聽的,是增加了比較的難度,說的嚴重一些,可能會對數據進行扭曲,導致使用者得出錯誤的結論。
工具及處理方式:
1)不要輕易拋棄那些傳統的可視化方式,如果這些方式能夠表現你的數據。先試試柱狀圖或者線狀圖,如果你的數據真的需要其他的再考慮其他圖。
2)理解其他形式的圖的表現優勢,比如,氣泡圖支持更多地數據範圍,餅圖支持局部全局的對比,樹狀圖能夠支持分層結構等等。
3)柱狀圖是可視化最容易的圖形之一, 你可以手工編寫一段HTML代碼,僅僅使用CSS或者很少量的Java,或者從Excel裡面的一個公式,就可以生成一個有效的柱狀圖來。
秘密三: 真實數據不可替代
對一個數據集進行清洗和格式化,已經很繁瑣了,如果你需要設計一個基於多個數據集的可視化呢?比如你需要把公司不同部門的數據進行可視化,而這些部門各自有各自的數據庫, 而且你也沒有時間,手工把每個數據集進行清洗。
這時候,人們的第一想法可能是抓一些Demo的數據,來進行可視化。 而且你的可視化庫裡,可能就有一些標準的樣本數據。
這時候,人們的第一想法可能是抓一些Demo的數據,來進行可視化。 而且你的可視化庫裡,可能就有一些標準的樣本數據。
很不幸,真實數據不可替代。Demo數據一般遵循正態分布,而且數據量有限,是為了展示可視化用的。而一個看上去完美的柱狀圖,並不能幫助你解決那些數據缺失,異常數據或者現實中的真實問題。
如果你過度依賴Demo數據,當你用真實數據時,你就會發現你的數據可視化設計,並不能真正滿足你的數據分析,或者數據表現的需求。
如果你過度依賴Demo數據,當你用真實數據時,你就會發現你的數據可視化設計,並不能真正滿足你的數據分析,或者數據表現的需求。
工具及處理方式:
1)如果你無法訪問整個數據集,不妨先試試從真實數據集中,隨機取些樣本數據。
2)保留無效或者缺失數據,如果你的數據集在可視化前,不準備進行數據清洗,那麼也不要清洗樣本數據。
3)真實數據集也許過大。在你使用樣本數據時,在生成最終的可視化圖前,等比例調整樣本數據規模。
秘密四:細節的地方才最頭痛
如上圖,當你水平排列數據標識時,數據標識會看不清,如果旋轉90度,數據標識是看清楚了,不過又浪費了很大一塊空間。 選擇一個合適的數據標識格式,對有些可視化來說是個解決方案,不過也不是對所有方案都適用。
設計數據標識,注釋或者橫軸縱軸,通常都是在初始可視化後才考慮的。不過這些元素對可視化來說非常重要,而且可能會很困難或者需要大量時間,才能把它們做好。特別是在你無法事先預知你的數據的情況下。
在設計你的可視化的時候, 你需要留出相當部分的空間,以便你可能需要添加標識只用,通常要在你的圖周圍,留出相對較大的空間。
橫縱軸上的標識,要保證它們不相互覆蓋,而且可讀。如果必要的話,可以將標識進行旋轉,來增加可讀性。如果有一塊空間標識過於集中, 而你又需要這些標識可讀, 你可以讓考慮把標識離它們所指的元素遠一些,然後用連接線把標識和元素連起來。
另外一種方式,就是把標識整合成一個組, 用標識工具提示的方式來進行可視化。 如果標識的文字過長, 可以考慮進行縮寫,或者把超出的文字剪掉等方式。
橫縱軸上的標識,要保證它們不相互覆蓋,而且可讀。如果必要的話,可以將標識進行旋轉,來增加可讀性。如果有一塊空間標識過於集中, 而你又需要這些標識可讀, 你可以讓考慮把標識離它們所指的元素遠一些,然後用連接線把標識和元素連起來。
另外一種方式,就是把標識整合成一個組, 用標識工具提示的方式來進行可視化。 如果標識的文字過長, 可以考慮進行縮寫,或者把超出的文字剪掉等方式。
類似的, 對圖的注釋也需要事先計劃好。 最簡單的方式就是在可視化中,保留一部分區域來方便添加註釋。不過, 這樣意味著你的圖所佔的部分就會減小。
為了保留空間, 把注釋放在圖上的空白部分。 或者把注釋做成可拖拽,這樣用戶可以把注釋移開來,看注釋遮蓋的部分。
為了保留空間, 把注釋放在圖上的空白部分。 或者把注釋做成可拖拽,這樣用戶可以把注釋移開來,看注釋遮蓋的部分。
工具及處理方式:
1)在設計時把數據標識,數據軸及注釋的空間在圖上留好。
2)對數據標識,定義最大字符數, 超出部分需要裁掉。 把相近的標識組合在一起, 在用戶點到時再顯示。
3)對長注釋, 可以考慮用滾動或者展開的方式
4)無論如何, 不要忽視這些元素。數據標識在你專注圖形設計的時候,可能不是你的最主要考慮, 不過它們對可視化的用戶來說非常重要。
秘密五:需要的時候才用動畫
可視化的設計者,經常希望能夠在最終設計上加上動畫。 動畫是一種連接數據,和變化趨勢的非常有用的工具。不過動畫也常常會導致對你的數據的錯誤理解。
你需要對它會如何影響你的最終效果進行評估, 而不是簡單地在最後加上動畫效果。動畫最適合表現的,是揭示數據如何在不同狀態下組合在一起, 如何隨時間變化,或者是如何相互影響的等場合。
你需要對它會如何影響你的最終效果進行評估, 而不是簡單地在最後加上動畫效果。動畫最適合表現的,是揭示數據如何在不同狀態下組合在一起, 如何隨時間變化,或者是如何相互影響的等場合。
一般的設計原則是, 動畫要簡單,可預測並且可以重新播放。讓用戶能夠多次播放動畫,可以讓他們看到動畫元素,從哪裡開始到哪裡停止。要避免不同元素在移動中互相覆蓋, 不要讓元素的運動不可預測。
對於複雜的動畫,研究顯示,可以把動畫分解為幾個不同的階段,在每個階段暫停一會,給用戶一些時間來體會。這樣有助於提高用戶的理解。
對於複雜的動畫,研究顯示,可以把動畫分解為幾個不同的階段,在每個階段暫停一會,給用戶一些時間來體會。這樣有助於提高用戶的理解。
工具及處理方式:
1)盡可能讓動畫簡單
2)如果動畫複雜或者有很多動畫元素, 可以考慮分階段動畫
3)一開始動畫往往能夠給人新鮮感, 不過會很快讓用戶感到厭倦。不要僅僅因為你會加動畫,就在你的可視化你加上動畫。
秘密六: 數據可視化不是分析
數據可視化可以產生一些分析結果, 不過需要指出的是,可視化是一個輔助分析的工具, 而不是數據分析的替代, 它也不是統計的替代: 你的圖形可能揭示了一些數據差異,或者數據的相關性。
不過,要得出存在這些差異和相關性的可靠結論,還需要運用統計的方法。要對你的數據真正瞭解,需要分析的技能,以及專業的知識。不要指望可視化能夠給你這些。因此,在進行可視化項目的時候,要調整客戶或者你的CEO的期望值。
不過,要得出存在這些差異和相關性的可靠結論,還需要運用統計的方法。要對你的數據真正瞭解,需要分析的技能,以及專業的知識。不要指望可視化能夠給你這些。因此,在進行可視化項目的時候,要調整客戶或者你的CEO的期望值。
工具及處理方式:
1)除非你就是數據分析師,你對數據可視化得出的結論,不要輕易下判斷如果需要進行結論,最好找一個統計師或者專業人士,一起驗證後再給結論。
2)一些細小的設計改變, 比如調色板的變化,對某個變量的可視化方式等,都可能改變可視化得出的結論。如果你用可視化進行分析,一定要試試多種可視化方式,而不要依賴於一種方式。
3)Stephen Few的 書「Now You See It」裡面,介紹了利用可視化進行商業分析的方式,包括對開發者如何設計,可供分析使用的可視化工具的一些建議, 讀者可以參考。
秘密七: 數據可視化不僅僅是編程
現在大量的可視化編程庫和教程,使得普通的人員在進行基於Web的可視化中, 也可以設計出高品質的可視化產品。 然而, 要想真正設計一個能夠提供深入見解,或者能夠清楚表達的可視化產品, 除了編程之外,還需要很多其他的技能。 比如圖像設計、數據分析、交互設計,以及對人們認知的瞭解等待。 這些技能,是那些可視化編程庫提供不了的。
不過, 好消息是,如果你堅持採用一些數據可視化的基本原則的話。
你也不需要對這些技能瞭解太多。對於初學者來說, 需要堅持一些最基本的原則, 比如, 盡量使用柱狀圖, 不要把圓半徑設置按線性比例設定(編者:在面積比較時會給用戶錯誤理解),設計要簡單(不要用3D、少用動畫、不要用陰影)等。
按照一些好的可視化樣本, 初學者也可以創造出好的可視化作品來。
按照一些好的可視化樣本, 初學者也可以創造出好的可視化作品來。
沒有留言:
張貼留言