您的位置:首頁>正文

「乾貨」五個技巧教你用程式設計實現資料視覺化

資料視覺化可以通過視覺形式來呈現抽象的資料資訊, 有利於對資料進行更深入的觀察和分析, 除了使用現有的視覺化軟體和工具, 也可以用程式設計定制屬於自己的資料視覺化, 本文推薦五個技巧教你用程式設計實現資料視覺化。

1.使用你最熟悉的軟體

學習用程式設計建立資料視覺化不代表要摒棄你已經熟悉的工具。 我一般使用任何能夠最快速解決問題的工具, 這個工具可以是Excel, GoogleSheets, 或者是Python。

你不需要只用R或者只用JavaScript做完所有工作, 在一項工作中囊括不同的工具是有好處的。 你的最終目的是製作視覺化圖表, 每一步的結果會引導你進行到下一步, 所以不要太糾結於用“正確”的方法做事。

2.從基礎做起

不要期待你第一次嘗試就會做出非常高級非常驚豔的視覺效果。 尤其在學習的初期, 你是有很多路要走的, 所以要從基礎做起,

再慢慢去使用更加高級的技巧。 這樣你才不會一開始就感到備受打擊, 從而放棄學習的希望。

在R語言中, 有很多工具包可以幫助你做事情, 甚至有時候你只要使用一個函數就行了。 但是如果你不熟悉R的程式設計句法, 我還是建議你從最基本的R語言學起, 即便可能會有些難。

就好比我之前提到的d3.js這個JacaScript函式庫, 如果你不熟悉JavaScript, 或者剛剛開始學習程式設計, 很多類似的東西都會看起來很難。 我建議你從MikeBostock寫的基礎教程學起, 慢慢開始瞭解你做的東西。

3.找一個項目去完成

不要認為要把所有的東西學完再開始做專案, 這樣你會被耽擱。 先學習一些基礎知識就可以開始了, 這至少可以保證, 日後當你遇到問題在網上搜索的時候,

能夠看懂那些解決方法。

選擇一些資料, 然後開始著手嘗試視覺化吧。 一開始的進展肯定非常緩慢, 你也會覺得很困惑, 這都是很正常的。 我直到現在還經常因為一些問題感到困惑, 但你一定要堅持做完。

做專案的受益之處, 在於它逼著你去學習你需要知道的。 你每做完一個專案, 下一個就會變得容易一些了。

通常一個資料視覺化的專案會分成以下的步驟。

1.處理和格式化資料

Python

當我有一個非矩形分隔的檔 ,或資料比較淩亂時, 我會寫一些特別的Python腳本。 幸運的話, 我會找到並重新利用過去已有的腳本。 有時會用Beautiful Soup來修飾, 有時會用csvkit 。

R

我只有在需要載入csv格式表格時才會用到R, 通常只是做資料聚合, 合併, 或處理從原來的資料中派生的部分。

Tabula

多用於公開的政府資料, 包括在 PDF檔中涉及的資料。 沒有 Tabula的話這個過程將非常痛苦。

Microsoft Excel

只有在有需求的時候才會用到它。 資料讀入Excel中, 然後再導入像Numbers或是OpenOffice這樣的工具中。

Google Sheets

有時使用試算表比寫腳本更快, 我很喜歡這樣簡潔的過程。

2.分析資料

在你去做最後的圖形之前, 你需要先瞭解這個資料集。

R

這裡我想到的是R。 因為R作為一個開源的統計計算語言, 它有一個很豐富的社區, 數不盡的擴展包, 以及在Stack Overflow上大量的已解答的問題。

3.製作靜態圖形

這對我來說通常包含兩個階段:(i)在R中進行視覺化; (ii)在Illustrator中潤色。

R

在R中有視覺化工具包, 如ggplot2, 但我幾乎全部使用R自帶的那些功能, 即base R。 對此我寫過很多教程。

Adobe Illustrator

如果圖形要發佈給別人看,

我會以PDF格式保存R生成的圖形, 並在Illustrator中編輯。 雖然有些矯枉過正, 但效果還不錯。 我也在考慮試著用Sketch。

4.製作互動式圖形

Flash已經過時了, 而JavaScript是新的寵兒。 R在這裡應用不廣。

d3.js

我用資料驅動的文檔來做互動式的資料視覺化(我還在學習中)。 有許多例子可以用來試手。 但如果我想快速完成一個圖表, 我有時也會嘗試用 Vega-Lite 。

4.認真閱讀程式設計指南和範例

程式設計指南是很有用的。 一開始可能會有些難, 但你必須要適應。 如果你的程式出了問題, 很大可能是因為你寫的不對, 而不是代碼的實現有問題。 所以這個時候你就需要仔細閱讀指南, 確認你的函數運用是正確的。

在R語言中, 所有函數的指南都是用相同的格式寫的, 它會告訴你這個函數有哪些參數, 返回值是什麼,並且之後會給出使用的範例,這些範例都非常經典。

d3.js函式庫的創建者MikeBostock就寫了非常好的指南,在網上也有很多其他教程。Bostock在指南中收錄的大量範例是非常有用的,每當我遇到問題,在網上搜索解決方法的時候,我一般都會把出現的問題和“mbostock”放在一起搜索。

5.著手去做

我有時會也會因為想太多而遲遲不開始,但是只要你能著手按照以上的小提示去做,能節省很多時間。用工具進行資料視覺化,一般會有一個最優的做法,但沒有必要從一開始就去尋找它。先把形狀和顏色在螢幕上試下,然後將資料編譯進去,讓資料在大體上看起來沒問題。如果有些不對勁(尤其是對於含有互用和動畫的視覺化項目),你再去尋求更優化的做法。一般情況下,即使不是最優,你的圖表也是沒錯的。

對於web前端的學習有不懂的,或者不知道學習路線,不知道學習方法,不知道該如何扎實能找到工作的朋友,我還是要推薦下我自己建的前端學習群:523218370,首先你要是前端黨,其次不管你是小白還是大牛,我都挺歡迎,小白嘛,主動點多問問題也就學好了,群裡每天分享乾貨,包括我自己最近花了一星期整理的一份適合2017年自學的最新web前端資料,送給大家,歡迎初學和進階中的小夥伴。

不錯過任何乾貨

返回值是什麼,並且之後會給出使用的範例,這些範例都非常經典。

d3.js函式庫的創建者MikeBostock就寫了非常好的指南,在網上也有很多其他教程。Bostock在指南中收錄的大量範例是非常有用的,每當我遇到問題,在網上搜索解決方法的時候,我一般都會把出現的問題和“mbostock”放在一起搜索。

5.著手去做

我有時會也會因為想太多而遲遲不開始,但是只要你能著手按照以上的小提示去做,能節省很多時間。用工具進行資料視覺化,一般會有一個最優的做法,但沒有必要從一開始就去尋找它。先把形狀和顏色在螢幕上試下,然後將資料編譯進去,讓資料在大體上看起來沒問題。如果有些不對勁(尤其是對於含有互用和動畫的視覺化項目),你再去尋求更優化的做法。一般情況下,即使不是最優,你的圖表也是沒錯的。

對於web前端的學習有不懂的,或者不知道學習路線,不知道學習方法,不知道該如何扎實能找到工作的朋友,我還是要推薦下我自己建的前端學習群:523218370,首先你要是前端黨,其次不管你是小白還是大牛,我都挺歡迎,小白嘛,主動點多問問題也就學好了,群裡每天分享乾貨,包括我自己最近花了一星期整理的一份適合2017年自學的最新web前端資料,送給大家,歡迎初學和進階中的小夥伴。

不錯過任何乾貨

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示