工欲善其事,必先利其器。想做優秀的數據記者,也得隨時備好工具。深度君借鑒數據記者的工具包分享,分功能推薦R語言程序包和其他軟件,教你準備屬於自己的數據利器。大家還可參考《乾貨 | 數據收集和處理工具一覽》。點擊“閱讀原文”,即可查看文中所提的軟件和教程。
獲取、清洗數據,調整格式
想從PDF里抽數據?不用編程,免費軟件Tabula就能一舉搞定。安裝並打開Tabula後,上傳PDF文件,選中表格信息,點擊“預覽&輸出抽取數據(Preview & Export Extracted Data)”檢查數據,再戳“輸出(Export)”即可get表格或純文本格式數據,任務完成!Tabula可兼容 Windows, Mac 和Linux系統,目前已更新為1.0.1版本。了解詳情,請登錄官網閱讀版本說明,從主頁下載軟件即可。
不過,Tabula沒法抽取掃描文件的數據,這時應換用OCR軟件(光學字符識別軟件)。
數據一多,就有可能殘缺、冗餘,或名稱不一致,數據量越大越可能出錯。如何快速整理雜亂無章的數據呢?免費開源的數據清洗工具Open Refine是個好幫手。它在瀏覽器上運行,幫你在使用數據前挖掘、清洗數據——別怕原始數據會因此遺失,它在網上運行的同時,也悄悄把所有數據存進了電腦。
點擊《數據清洗神器Open Refine簡明入門》即可查看數據新聞工作坊編寫的教學指南。
LibreOffice/Google sheet/MS Excel
要想檢查、修改數據,作基本清洗,最常用的就是Excel了(常用表格應用還有LibreOffice 、Google sheet)。雖然Excel眾人皆知,但還有好多隱藏功能待你解鎖。例如,Excel2016可以連接新工具Power BI,製作可視化、生成數據圖表都不在話下。如果想自學Excel的數據分析技巧,可參考知乎上的詳細講解。
R
本次要隆重介紹的,是免費開源統計語言R。它除了能清洗數據、統計分析,若有程序包rvest,還可通過公開數據門戶(世界銀行、歐盟統計局等機構)的API抽取數據。R是處理數據的好手,在程序包tidyr和dplyr的幫助下,可以實現合併、設置子集、聚合等多個功能。
分析數據
在數據驅動新聞領域,快速瀏覽數據是分析、製作的前提。這就意味着要搜索符合條件的數據,或快速檢查數據特徵、找出異常值。
之前提到的R也是優秀的數據分析工具。安裝程序包ggplot2後,即可用R快速調整數據,繪製形態各異的圖像。再次推薦大家看解說+例子齊全的知乎介紹。數據分析結果出爐後,還可以用R的程序包markdown編輯和標記數據,製成編碼和圖表齊全的報告。Markdown的與眾不同在於,文本可隨代碼或數據的改變自動更新,且輸出格式齊全:包括HTML, PDF, Word, Beamer模板, HTML5 演示, Tufte講義, R插圖,甚至是整個網頁。
製作圖表
靜態數據可視化
R (ggplot2 + Inkscape/Illustrator):
說到製作數據圖,R生成的圖只是方便查看數據,美觀不足。要想化枯燥為生動,就得多打幾行代碼。可以參考上面提及的ggplot2程序包製圖法,或者查閱Wikibooks的介紹get更多技巧。
R的圖表可以存成PDF或者SVG格式。SVG是可縮放矢量圖形格式,能隨頁面大小自動調整,更適合移動端瀏覽。這兩種格式都能在軟件Inkscape(免費開源)或Adobe Illustrator上手動編輯,添加註記圖層。
如果PNG或GIF的圖片想轉成SVG,怎麼辦?試試在線轉換工具Vector Magic,編輯時可對比原圖。
交互式數據可視化
有了開源工具Datawrapper,無需編程,即可迅速製圖。方法是:輸入數據(複製黏貼或上傳CSV文件,注意格式統一)——選中圖表樣式——保存文件名——點擊“Publish(發布)”。你可以免費生成可視化、保存PNG格式。目前可生成折線圖、柱狀圖、疊加柱狀圖、地圖、圓環圖、表格圖。付費可獲取圖像鏈接(用於嵌入網頁)或設計更多元素。
如果有編程基礎,可以選D3.js練手。看看下面炫酷的可視化,就知道D3.js功能有多廣泛了:它可操作數據的Javascript庫,能用HTML(顯示頁面內容),SVG(繪圖)和CSS(設計樣式)製作炫酷的可視化,目前它的代碼託管於GitHub(全球最流行的代碼託管平台)。
D3.js優點多多,其中就有:
- 可將任意代碼綁定文檔對象模型(即DOM,JavaScript通常用DOM讀取、修改HTML或XML文檔),用一串數字就能生成HTML表格,或者用相同數據創製互動的SVG圖表
- 可處理大型數據集。
- 可用插件和組件多,隨意綁定數據和元素,玩轉多種可視化效果。
- 有中文API哦。
更詳細的入門教程,請參考:
- D3官網
- GitHub中文介紹,含API中文手冊
- 中文專題站OUR D3.JS的教程
- 數據新聞網:《我與js二三事》
- 書:《數據可視化實戰——使用D3設計交互式圖表》,Scott Murry著
R + rCharts / htmlwidgets:
覺得D3.js學起來太麻煩,想節省時間,就回到你剛才用過的R,只要再安裝rCharts或htmlwidgets等程序包就可以做交互圖表了。優點是數據分析和圖形製作的代碼都可以放在基於相同元數據的同一腳本,方便多次製圖和效果更新。
同理,在R上安裝程序包leaflet.js可以製作地圖,安裝Highchart就可製作多種多樣的互動圖表。成品如下(點擊可見詳情,還可參考Highchats中文網)
Duc Quang Nguyen是瑞士資訊(swissinfo.ch)的數據記者和項目經理,他曾獲得牛津大學計算生物學(computational biology)博士學位,當過數據科學家,目前轉做數據記者。Nguyen熱衷於數據挖掘、公開數據、開源工具和數據驅動新聞領域。
瑞士諮詢是瑞士廣播電視集團的國際服務機構,提供有關瑞士和國際的政治、經濟、文化、社會和科技領域報道,含10種語言平台。
參考來源:
- Global Investigative Journalism Network, A Data Journalism Expert’s Personal Toolkit (本文原刊於Medium,GIJN經授權轉載)
- 全球深度報道網,《調查記者專用:數字信息調查工具清單》
- 全球深度報道網,《數據清洗神器Open Refine簡明入門》
- 少數派,《認識與入門Markdown》
- Computerworld, Create simple, free charts with Datawrapper
編譯/周煒樂,編輯/Ivan Zhai, 王一葦