數據挖掘工程師如何選擇數據可視化工具?
如何選擇數據可視化工具?
如何選用數據可視化工具?在回答這個問題之前現需要回答另外一個問題,你需要用這些數據可視化工具來做什麽,實現什麽目的。
也許你有一個完整的想法,已經通過驗證了,需要用更直觀易懂的方式來展現,從而講述一個邏輯或者是一個故事;也許你是有大量的數據,你想怎麽從這些數據中間發現,挖掘,並展現一些數據背後的知識或者洞察;也許你是有各種各樣的數據,但是你不懂數據建模,編程,或者數據清洗,甚至是SQL的優化等你需要一個易用的數據可視化工具實現通過拖拽就能完成數據的可視化,並且可以給出最合適的展示圖形;也許還有其他的各種場景,但是所有數據可視化工具都有他核心服務的一個場景,漂亮,易用,簡單,協作,智能等等。每一個數據可視化工具都有一個定位的標簽。應該通過我們需要的核心需求來做選擇。做一個簡單分類:
1. 明確目標的易用,多樣展示型工具,比如Tableau;
2. 可以支持靈活定制的展示型,比如圖標庫D3;
3. 不明確目標的數據探索型,比如google spreadsheet的explore;
4. 有行業訴求既能可視化分析又能數據探索的,比如帆軟FineBI;
5. 按照行業或者職能需求的數據可視化,比如DOMO,Qlikview;
之前看到某網友用了24種工具制作一個相同的圖表,比較了12款可視化軟件和12個編程/圖表庫,並針對工具/圖表庫的側重度,靈活程度,圖表創新性,交互效果四大方面,寫了一篇一級棒的文章。
今年5月,這個妹子給自己設置了一個挑戰:盡可能嘗試使用多種多樣的編程語言或者軟件來進行數據可視化。為了比較這些工具,她利用這些工具重復制作了同樣的一張散點圖。基於結果,她還發布了兩篇文章:一篇是用12種軟件做一個相同的圖表,另一篇是用12種編程/圖表庫做一個相同的圖表。下圖展示了她使用12個不同的軟件制作同一張散點圖的過程:
這是12種編程/圖表庫制作出來的效果:
她從這些可視化軟件/圖表庫中認識到:沒有十全十美的工具,但是如果確立(可視化)目標,就能找到合適的工具去實現。下面是她在制作中曾遇到過的一些矛盾,也是數據可視化工作者常常遇到的情況。
1、分析 VS 展示:
是想使用工具(R, Python)來分析數據,還是更註重於構建可視化效果(D3.js, Illustrator)?有些BI工具(比如說FineBI, Tableau, Plotly)試圖在這其中謀求平衡,既可分析又可展示。她根據分析和展示上的側重性對可視化工具和編程語言們進行了排列:可以看到工具類的往往更註重展示,而編程類的比較平均,各有側重。
2、數據管理
如果制作可視化的時候需要更改源數據怎麽辦?在這方面,這些工具或編程語言的靈活性如何?
低靈活性:比如在Illustrator中,即使你只是輕微修改了數據,也需要重頭開始制作圖表,這種工具還不方便進行數據管理。
中靈活性:比如在D3.js中,可以單獨處理或修改數據,然後再重新導入數據文件來更新可視化結果。
高靈活性:比如在FineBI中,數據分析的處理如數據建模,數據清洗,甚至是SQL的優化,大數據量的處理都可以在一個平臺完成,同時易用,拖拽就能完成數據的可視化。
3、傳統圖表 VS 創新圖表:
如果你只需要基本的圖表類型,如柱狀圖或折線圖,Excel完全可以滿足啦~但你如果想創建表現形式更為豐富的互動圖表,比如點擊可以出現酷炫的交互效果,像D3.js之類的編程語言就更適合啦,但是學習此類工具的門檻也往往更高,有著陡峭的學習曲線和冗長的代碼。或者也可以使用Processing,用它制作這張散點圖的代碼長度只有D3.js的一半。還有Lyra,它不需要任何代碼基礎,但也可以讓你輕松修改數據有關的視覺元素。
4、交互圖表 VS 靜態圖表:
你是需要創造基於網頁的交互圖表(如D3.js, Highcharts能做到的),還是PDF/SVG/PNG形態的圖表就能滿足你 (R和Illustrator可以做到)?幾年前,互動圖表曾受到高度追捧,但現在關註焦點慢慢從“看起來怎麽樣”轉移到“什麽才更有意義”。對於分析部分,交互特性往往也是很有必要存在的。Plotly和R的庫Ggvis就可以讓讀者輕松地將鼠標懸停在可視元素上來查看基礎數據。下圖是作者對於軟件/編程的在靜態和交互的劃分:
數據挖掘工程師如何選擇數據可視化工具?