導 讀
目前有很多用于資料可視化的軟體和工具,都非常便捷實用。我很難回答像是“我應該學着用什麼工具?什麼是最好的?”這樣的問題,因為隻有适合自己的才是最好的。像excel這樣一行代碼都不用寫就可以做資料可視化的工具,甚至被有些人用來畫風景呢。但是,寫代碼做自己的資料可視化還是有不少好處的,除了更加靈活高效外,還可以完全根據自己的需要進行“定制”。
用程式設計實作可視化其實是非常有趣的,雖然從起點學習程式設計不是那麼容易,而且大部分人都會說沒有足夠的時間,但我依然覺得,為了獲得長期的收益,從一開始花點功夫還是值得的。
以下的部分是根據我使用不同程式設計語言及工具的經驗分享給大家的一點小提示。
五個技巧
1. 使用你最熟悉的軟體
學習用程式設計建立資料可視化不代表要摒棄你已經熟悉的工具。我一般使用任何能夠最快速解決問題的工具,這個工具可以是excel,googlesheets,或者是python。
你不需要隻用r或者隻用javascript做完所有工作,在一項工作中囊括不同的工具是有好處的。你的最終目的是制作可視化圖表,每一步的結果會引導你進行到下一步,是以不要太糾結于用“正确”的方法做事。
2. 從基礎做起
不要期待你第一次嘗試就會做出非常進階非常驚豔的視覺效果。尤其在學習的初期,你是有很多路要走的,是以要從基礎做起,再慢慢去使用更加進階的技巧。這樣你才不會一開始就感到備受打擊,進而放棄學習的希望。
在r語言中,有很多工具包可以幫助你做事情,甚至有時候你隻要使用一個函數就行了。但是如果你不熟悉r的程式設計句法,我還是建議你從最基本的r語言學起,即便可能會有些難。
就好比我之前提到的d3.js這個jacascript函式庫,如果你不熟悉javascript,或者剛剛開始學習程式設計,很多類似的東西都會看起來很難。我建議你從mikebostock寫的基礎教程學起,慢慢開始了解你做的東西。
3. 找一個項目去完成
不要認為要把所有的東西學完再開始做項目,這樣你會被耽擱。先學習一些基礎知識就可以開始了,這至少可以保證,日後當你遇到問題在網上搜尋的時候,能夠看懂那些解決方法。
選擇一些資料,然後開始着手嘗試可視化吧。一開始的進展肯定非常緩慢,你也會覺得很困惑,這都是很正常的。我直到現在還經常因為一些問題感到困惑,但你一定要堅持做完。
做項目的受益之處,在于它逼着你去學習你需要知道的。你每做完一個項目,下一個就會變得容易一些了。
通常一個資料可視化的項目會分成以下的步驟。
處理和格式化資料
<a>python</a>
當我有一個非矩形分隔的檔案,或資料比較淩亂時,我會寫一些特别的python腳本。幸運的話,我會找到并重新利用過去已有的腳本。有時會用 beautiful soup 來修飾,有時會用csvkit。
<a>r</a>
我隻有在需要加載csv格式表格時才會用到r,通常隻是做資料聚合,合并,或處理從原來的資料中派生的部分。
<a>tabula</a>
多用于公開的政府資料,包括在pdf檔案中涉及的資料。沒有tabula的話這個過程将非常痛苦。
<a>microsoft excel</a>
隻有在有需求的時候才會用到它。資料讀入excel中,然後再導入像numbers或是openoffice這樣的工具中。
<a>google sheets</a>
有時使用電子表格比寫腳本更快,我很喜歡這樣簡潔的過程。
2) 分析資料
在你去做最後的圖形之前,你需要先了解這個資料集。
這裡我想到的是r。因為r作為一個開源的統計計算語言,它有一個很豐富的社群,數不盡的擴充包,以及在stack overflow上大量的已解答的問題。
制作靜态圖形
這對我來說通常包含兩個階段:( i )在r中進行可視化 ; (ii)在illustrator中潤色。
在r中有可視化工具包,如ggplot2,但我幾乎全部使用r自帶的那些功能,即base r。對此我寫過很多教程。
<a>adobe illustrator</a>
如果圖形要釋出給别人看,我會以pdf格式儲存r生成的圖形,并在illustrator中編輯。雖然有些矯枉過正,但效果還不錯。我也在考慮試着用sketch。
制作互動式圖形
flash已經過時了,而javascript是新的寵兒。r在這裡應用不廣。
<a>d3.js</a>
我用資料驅動的文檔來做互動式的資料可視化(我還在學習中)。有許多例子可以用來試手。但如果我想快速完成一個圖表,我有時也會嘗試用vega-lite。
4.認真閱讀程式設計指南和範例
程式設計指南是很有用的。一開始可能會有些難,但你必須要适應。如果你的程式出了問題,很大可能是因為你寫的不對,而不是代碼的實作有問題。是以這個時候你就需要仔細閱讀指南,确認你的函數運用是正确的。
在r語言中,所有函數的指南都是用相同的格式寫的,它會告訴你這個函數有哪些參數,傳回值是什麼,并且之後會給出使用的範例,這些範例都非常經典。
d3.js函式庫的建立者mikebostock就寫了非常好的指南,在網上也有很多其他教程。bostock在指南中收錄的大量範例是非常有用的,每當我遇到問題,在網上搜尋解決方法的時候,我一般都會把出現的問題和“mbostock”放在一起搜尋。
5. 着手去做
我有時會也會因為想太多而遲遲不開始,但是隻要你能着手按照以上的小提示去做,能節省很多時間。用工具進行資料可視化,一般會有一個最優的做法,但沒有必要從一開始就去尋找它。先把形狀和顔色在螢幕上試下,然後将資料編譯進去,讓資料在大體上看起來沒問題。如果有些不對勁(尤其是對于含有互用和動畫的可視化項目),你再去尋求更優化的做法。一般情況下,即使不是最優,你的圖表也是沒錯的。
好了,就說這麼多。現在請着手去做吧!
原文釋出時間為:2016-07-27
本文來自雲栖社群合作夥伴“大資料文摘”,了解相關資訊可以關注“bigdatadigest”微信公衆号