數據可視化:基於網路爬蟲製作可視化圖表
更多騰訊海量技術文章,請關注云加社區:https://cloud.tencent.com/developer/column
作者:RiboseYim
摘要
基於網路爬蟲的可視化圖表:golang,goquery
案例:最近十年全國彩票銷售變化情況
案例:中國科學院院士分布
數據可視化技術方案:基於 SVG (D3、Raphael)、基於 Canvas(Echarts)
我們身處大數據時代,幾乎在所有工作例如商業技術、金融、科研教育等行業,以及日常生活中都可能需要涉及數據分析活動。橫向來看數據分析的知識體系貫穿數據獲取、數據存儲、數據分析、數據挖掘、數據可視化等各大部分;按數據來源分,即可以是自己收集的數據,也可以採購數據或者基於公開數據集。
基於公開數據進行分析的話,必須提到的就是網路爬蟲(web crawler),也被稱作網路蜘蛛(spider)、自動索引程序(automatic indexer),搜索引擎(Google,百度等)就是大眾日常生活中接觸到的最典型、最強大的爬蟲。
公開數據包括政府(統計局、央行、銀監會、證監會等)、企業、社會組織和互聯網上的個人發布信息等。在浩如煙海的互聯網內容中,有價值信息猶如『待字閨中』深藏的美女,等待有心人去挖掘。例如:
案例:最近十年全國彩票銷售變化情況 在線演示
案例:中國科學院院士分布(出生地與籍貫)在線演示
案例:美國航空入境旅客(出發地)變化情況 在線演示
中科院院士分布情況|201801
全國彩票銷售情況
為了實現上述圖表,相關技術方案的要點如下:
開發語言: 基於 Golang 實現爬蟲基本功能,主要考慮 Go 語言 自身對於網路方面的強大支持,語言級 Goroutines 提供並發高性能支持。
HTML選擇器: goquery jQuery-style HTML manipulation in Go
數據存儲: csv,PostgreSQL 等
數據可視化:ECharts
基於網路爬蟲製作可視化圖表
案例
數據來源頁面:
專欄:彩票管理
2017年11月份全國彩票銷售情況
全體院士名單
院士個人介紹
數據來源-專題
數據來源-內容
數據來源-翻頁
數據來源頁面-源代碼
2017年11月份全國彩票銷售情況,385.55
2017年10月份全國彩票銷售情況,376.53
2017年9月份全國彩票銷售情況,369.28
2017年8月份全國彩票銷售情況,350.67
2017年7月份全國彩票銷售情況,337.55
2017年6月份全國彩票銷售情況,338.42
可視化圖表:以 ECharts 為例
常見的圖表庫,本文案例使用 ECharts 作為圖表組件
HighCharts:JavaScript 編寫,開源許可證允許個人用戶和非商業用途。
Baidu ECharts:底層畫圖基於 Canvas, BSD 許可證協議。
Kartograph:構建互動式地圖輕量級類庫。
最佳實踐
默認調色板(palette)
Navy — #001f3f Blue — #0074d9 Aqua — #7fdbff Teal — #39cccc Olive — #3d9970 Green — #2ecc40 Lime — #01ff70 Yellow — #ffdc00 Orange — #ff851b Red — #ff4136 Maroon — #85144b Fuchsia — #f012be Purple — #b10dc9 Black — #111111 Gray — #aaaaaa Silver — #dddddd White — #ffffff
優化圖表JS生成模板 圖表定型之後,可以通過模板固化配置,根據需要動態生成目標文件(html,js,svg等等),詳見基於 Markdown 的 HTML 網頁模板。
優化採集器 Goroutines "線程池" 例如:PostgreSQL Exception: Open too many files
優化數據存儲 例如:常用的 GIS 坐標庫
擴展閱讀:開源工具與案例
golang-based library
golang.org/net/http
github.com/celrenheit/spider
goquery: jQuery-style HTML manipulation in Go
github.com/henrylee2cn/pholcus_lib
Pholcus is a distributed, high concurrency and powerful web crawler software
可視化圖表案例
中國主要城市空氣質量實況
中國經濟十年時空漫遊(2002-2011)
可視化圖表技術方案
基於 SVG : D3、Raphael
基於 Canvas : Echarts
HighCharts國外開源產品,JavaScript 編寫,自帶主題、動態交互方便,目前公司新版業務視圖、地圖應用、互動式流量圖等是基於這個庫實現。 不足:缺少中文文檔,開源許可證只允許個人用戶和非商業用途,規模應用存在法律風險。
Baidu ECharts最早源於百度各種業務系統報表需求,底層畫圖基於 Canvas 。2013年開源,完全免費的BSD協議。 特點:拖拽重計算,第三方標準格式支持,中文社區支持 實例:http://echarts.baidu.com/doc/example.htmlGithub: https://github.com/ecomfe/echarts
KartographKartograph 是個構建互動式地圖的簡單、輕量級類庫。它包含兩個庫,一個用Python寫的,用於產生漂亮和壓縮的SVG地圖,另一個是js類庫用於前端展示地圖用。
lchart(go-based)


※揭秘深度學習的基本理論方法與訓練過程
※SPA 大賽:win10 python3.5.X 下開啟 lightgbm 支持
TAG:雲加社區 |