五個(gè)技巧教你用編程實(shí)現(xiàn)數(shù)據(jù)可視化
【數(shù)據(jù)猿導(dǎo)讀】 目前有很多用于數(shù)據(jù)可視化的軟件和工具,都非常便捷實(shí)用。我很難回答像是“我應(yīng)該學(xué)著用什么工具?什么是最好的?”這樣的問(wèn)題,因?yàn)橹挥羞m合自己的才是最好的。像Excel這樣一行代碼都不用寫(xiě)就可以做數(shù)據(jù)可視化的工具,甚至被有些人用來(lái)畫(huà)風(fēng)景呢。但是,寫(xiě)代碼做自己的數(shù)據(jù)可視化還是有...

用編程實(shí)現(xiàn)可視化其實(shí)是非常有趣的,雖然從起點(diǎn)學(xué)習(xí)編程不是那么容易,而且大部分人都會(huì)說(shuō)沒(méi)有足夠的時(shí)間,但我依然覺(jué)得,為了獲得長(zhǎng)期的收益,從一開(kāi)始花點(diǎn)功夫還是值得的。
以下的部分是根據(jù)我使用不同編程語(yǔ)言及工具的經(jīng)驗(yàn)分享給大家的一點(diǎn)小提示。
五個(gè)技巧
1. 使用你最熟悉的軟件
學(xué)習(xí)用編程建立數(shù)據(jù)可視化不代表要摒棄你已經(jīng)熟悉的工具。我一般使用任何能夠最快速解決問(wèn)題的工具,這個(gè)工具可以是Excel,GoogleSheets,或者是Python。
你不需要只用R或者只用JavaScript做完所有工作,在一項(xiàng)工作中囊括不同的工具是有好處的。你的最終目的是制作可視化圖表,每一步的結(jié)果會(huì)引導(dǎo)你進(jìn)行到下一步,所以不要太糾結(jié)于用“正確”的方法做事。
2. 從基礎(chǔ)做起
不要期待你第一次嘗試就會(huì)做出非常高級(jí)非常驚艷的視覺(jué)效果。尤其在學(xué)習(xí)的初期,你是有很多路要走的,所以要從基礎(chǔ)做起,再慢慢去使用更加高級(jí)的技巧。這樣你才不會(huì)一開(kāi)始就感到備受打擊,從而放棄學(xué)習(xí)的希望。
在R語(yǔ)言中,有很多工具包可以幫助你做事情,甚至有時(shí)候你只要使用一個(gè)函數(shù)就行了。但是如果你不熟悉R的編程句法,我還是建議你從最基本的R語(yǔ)言學(xué)起,即便可能會(huì)有些難。
就好比我之前提到的d3.js這個(gè)JacaScript函式庫(kù),如果你不熟悉JavaScript,或者剛剛開(kāi)始學(xué)習(xí)編程,很多類(lèi)似的東西都會(huì)看起來(lái)很難。我建議你從MikeBostock寫(xiě)的基礎(chǔ)教程學(xué)起,慢慢開(kāi)始了解你做的東西。
3. 找一個(gè)項(xiàng)目去完成
不要認(rèn)為要把所有的東西學(xué)完再開(kāi)始做項(xiàng)目,這樣你會(huì)被耽擱。先學(xué)習(xí)一些基礎(chǔ)知識(shí)就可以開(kāi)始了,這至少可以保證,日后當(dāng)你遇到問(wèn)題在網(wǎng)上搜索的時(shí)候,能夠看懂那些解決方法。
選擇一些數(shù)據(jù),然后開(kāi)始著手嘗試可視化吧。一開(kāi)始的進(jìn)展肯定非常緩慢,你也會(huì)覺(jué)得很困惑,這都是很正常的。我直到現(xiàn)在還經(jīng)常因?yàn)橐恍﹩?wèn)題感到困惑,但你一定要堅(jiān)持做完。
做項(xiàng)目的受益之處,在于它逼著你去學(xué)習(xí)你需要知道的。你每做完一個(gè)項(xiàng)目,下一個(gè)就會(huì)變得容易一些了。
通常一個(gè)數(shù)據(jù)可視化的項(xiàng)目會(huì)分成以下的步驟。
處理和格式化數(shù)據(jù)
Python
當(dāng)我有一個(gè)非矩形分隔的文件 , 或數(shù)據(jù)比較凌亂時(shí),我會(huì)寫(xiě)一些特別的Python腳本。幸運(yùn)的話(huà),我會(huì)找到并重新利用過(guò)去已有的腳本。有時(shí)會(huì)用Beautiful Soup來(lái)修飾,有時(shí)會(huì)用csvkit 。
R
我只有在需要加載csv格式表格時(shí)才會(huì)用到R,通常只是做數(shù)據(jù)聚合,合并,或處理從原來(lái)的數(shù)據(jù)中派生的部分。
Tabula
多用于公開(kāi)的政府?dāng)?shù)據(jù),包括在 PDF 文件中涉及的數(shù)據(jù)。沒(méi)有 Tabula 的話(huà)這個(gè)過(guò)程將非常痛苦。
Microsoft Excel
只有在有需求的時(shí)候才會(huì)用到它。數(shù)據(jù)讀入Excel中,然后再導(dǎo)入像Numbers或是OpenOffice這樣的工具中。
Google Sheets
有時(shí)使用電子表格比寫(xiě)腳本更快,我很喜歡這樣簡(jiǎn)潔的過(guò)程。
分析數(shù)據(jù)
在你去做最后的圖形之前,你需要先了解這個(gè)數(shù)據(jù)集。
R
這里我想到的是R。 因?yàn)镽作為一個(gè)開(kāi)源的統(tǒng)計(jì)計(jì)算語(yǔ)言,它有一個(gè)很豐富的社區(qū),數(shù)不盡的擴(kuò)展包,以及在Stack Overflow上大量的已解答的問(wèn)題。
制作靜態(tài)圖形
這對(duì)我來(lái)說(shuō)通常包含兩個(gè)階段:(i)在R中進(jìn)行可視化; (ii)在Illustrator中潤(rùn)色。
R
在R中有可視化工具包,如ggplot2,但我?guī)缀跞渴褂肦自帶的那些功能,即base R。對(duì)此我寫(xiě)過(guò)很多教程。
Adobe Illustrator
如果圖形要發(fā)布給別人看,我會(huì)以PDF格式保存R生成的圖形,并在Illustrator中編輯。雖然有些矯枉過(guò)正,但效果還不錯(cuò)。我也在考慮試著用Sketch。
制作交互式圖形
Flash已經(jīng)過(guò)時(shí)了,而JavaScript是新的寵兒。R在這里應(yīng)用不廣。
d3.js
我用數(shù)據(jù)驅(qū)動(dòng)的文檔來(lái)做交互式的數(shù)據(jù)可視化(我還在學(xué)習(xí)中)。有許多例子可以用來(lái)試手。但如果我想快速完成一個(gè)圖表,我有時(shí)也會(huì)嘗試用 Vega-Lite 。
4.認(rèn)真閱讀編程指南和范例
編程指南是很有用的。一開(kāi)始可能會(huì)有些難,但你必須要適應(yīng)。如果你的程序出了問(wèn)題,很大可能是因?yàn)槟銓?xiě)的不對(duì),而不是代碼的實(shí)現(xiàn)有問(wèn)題。所以這個(gè)時(shí)候你就需要仔細(xì)閱讀指南,確認(rèn)你的函數(shù)運(yùn)用是正確的。
在R語(yǔ)言中,所有函數(shù)的指南都是用相同的格式寫(xiě)的,它會(huì)告訴你這個(gè)函數(shù)有哪些參數(shù),返回值是什么,并且之后會(huì)給出使用的范例,這些范例都非常經(jīng)典。
d3.js函式庫(kù)的創(chuàng)建者M(jìn)ikeBostock就寫(xiě)了非常好的指南,在網(wǎng)上也有很多其他教程。Bostock在指南中收錄的大量范例是非常有用的,每當(dāng)我遇到問(wèn)題,在網(wǎng)上搜索解決方法的時(shí)候,我一般都會(huì)把出現(xiàn)的問(wèn)題和“mbostock”放在一起搜索。
5. 著手去做
我有時(shí)會(huì)也會(huì)因?yàn)橄胩喽t遲不開(kāi)始,但是只要你能著手按照以上的小提示去做,能節(jié)省很多時(shí)間。用工具進(jìn)行數(shù)據(jù)可視化,一般會(huì)有一個(gè)最優(yōu)的做法,但沒(méi)有必要從一開(kāi)始就去尋找它。先把形狀和顏色在屏幕上試下,然后將數(shù)據(jù)編譯進(jìn)去,讓數(shù)據(jù)在大體上看起來(lái)沒(méi)問(wèn)題。如果有些不對(duì)勁(尤其是對(duì)于含有互用和動(dòng)畫(huà)的可視化項(xiàng)目),你再去尋求更優(yōu)化的做法。一般情況下,即使不是最優(yōu),你的圖表也是沒(méi)錯(cuò)的。
好了,就說(shuō)這么多?,F(xiàn)在請(qǐng)著手去做吧!
來(lái)源:芝諾數(shù)據(jù)分析
刷新相關(guān)文章
我要評(píng)論
人物專(zhuān)訪(fǎng)more >
活動(dòng)推薦more >
- 2018 上海國(guó)際大數(shù)據(jù)產(chǎn)業(yè)高2018-12-03
- 2018上海國(guó)際計(jì)算機(jī)網(wǎng)絡(luò)及信2018-12-03
- 中國(guó)國(guó)際信息通信展覽會(huì)將于2018-09-26
- 第五屆FEA消費(fèi)金融國(guó)際峰會(huì)62018-06-21
- 第五屆FEA消費(fèi)金融國(guó)際峰會(huì)2018-06-21
- “無(wú)界區(qū)塊鏈技術(shù)峰會(huì)2018”2018-06-14
不容錯(cuò)過(guò)的資訊
-
1#后疫情時(shí)代的新思考#疫情之下,關(guān)于醫(yī)
-
2眾盟科技獲ADMIC 2020金粲獎(jiǎng)“年度汽車(chē)
-
3數(shù)據(jù)智能 無(wú)限未來(lái)—2020世界人工智能大
-
4#2020非凡大賞:數(shù)字化風(fēng)起云涌時(shí),共尋
-
5#榜樣的力量#天璣數(shù)據(jù)大腦疫情風(fēng)險(xiǎn)感知
-
6#榜樣的力量#內(nèi)蒙古自治區(qū)互聯(lián)網(wǎng)醫(yī)療服
-
7#榜樣的力量#實(shí)時(shí)新型肺炎疫情數(shù)據(jù)小程
-
8#榜樣的力量#華佗疫情防控平臺(tái)丨數(shù)據(jù)猿
-
9#后疫情時(shí)代的新思考#構(gòu)建工業(yè)互聯(lián)網(wǎng)新
-
102020可信云大會(huì)丨《云MSP發(fā)展白皮書(shū)》重