每次大家可能搞了一堆數據,想好好的展現一番,這個時候才發現,好像自己怎麼弄的數據都不好看。好啦,這個時候給大家推薦一個超級好用的庫ECharts,百度團隊良心之作。順便一起教教大家Pandas的使用以及怎麼在tushare裡調用前十大股東及流通股東數據的接口。
如果大家想看詳細的Pandas的教程,可以先關注,後面我會接著推出的。
ECharts介紹
以下摘自ECharts官網的介紹:
ECharts,一個純 Javascript 的圖表庫,可以流暢的運行在 PC 和移動設備上,兼容當前絕大部分瀏覽器,底層依賴輕量級的 Canvas 類庫 ZRender,提供直觀,生動,可交互,可高度個性化定製的數據可視化圖表。
ECharts 3 中更是加入了更多豐富的交互功能以及更多的可視化效果,並且對移動端做了深度的優化。
ECharts的成名,得益於幾年前百度人口遷徙大數據效果的展示,當年看到那個基於地圖連線忽閃忽閃的效果,簡直了,太高大上了。最近一年在北京偶爾拜訪一些所謂的大數據公司,進門顯眼位置看見的那些大屏幕數據展示,估計很多都是基於ECharts開發的。
Echarts如何在Python中應用
ECharts主要是應用在web和app領域,跟Python應用的結合,目前在Django,Flask等web框架裡更為常見。今天要介紹的,也是在IPython Notebook裡基於web的效果展示,而在IPython qtconsole等環境下似乎無能為力。
實際上,在IPython Notebook裡使用ECharts相比純web開發環境,要複雜麻煩一些。但是在IPython Notebook裡作為除matplotlib以外的數據可視化方案,ECharts或許可以成為一個強有力候補。尤其是在基於國內地圖、關係圖、桑基圖等方面的數據展示上,ECharts完全可以擔當大任,遊刃有餘。
Echarts使用原理
在IPython Notebook裡,有一個display的模塊,可以實現HTML效果的展示。而最核心的條件是notebook自帶一個JS模塊,可以通過RequireJS動態導入js腳本並執行。
我們先來看看HTML代碼在IPython notebook裡簡單的實現效果:
通過RequireJS,引入ECharts包
然後配置echarts熟悉和數據
圖表效果實例
這裡只給大家展示K線圖、折線圖和餅圖的效果,只揭示實現原理和過程,具體的代碼優化和圖表功能的完善,可以自行研究ECharts的相關資料來改進。
要實現這三類圖表,這裡借用股票日線行情數據、前十大股東持股佔比數據和前十大流通股東持股比例來舉例。(請將tushare升級到最新版。)
1、K線圖效果
通過tushare的get_k_data獲取日線前復權數據,這裡通過中國聯通來演示。根據上文的實現原理,我們運行代碼後可以看到如下效果。
2、折線圖效果
演示的折線圖效果實際是我選用了關係圖進行了改造,常規的折線圖大家可以參考ECharts官網的代碼。
這裡我用到了tusahre的新數據接口“十大流通股東”數據來做演示,數據包括了前十大股東和十大流通股東歷年各季度的持股數量和佔比。折線圖我用前十大股東歷年持股佔比情況來演示。
根據線圖實現的代碼,運行後,效果如下:
3、餅圖效果
餅圖用到了前十大流通股數據,選用浦發銀行2016年第三季度的數據作為示例。
對前十大流通股東數據安裝ECharts數據格式進行處理,代碼大致如下:
完整執行後,可以看到最終效果圖。
總結
ECharts實際可以大大豐富Python的圖表和展示效果。但是要想用好,需要對ECharts的用法有所瞭解,特別是要實現自定義的圖表的時候,更要對底層代碼進行研究。
這裡有三個應用方面的小技巧分享一下:
1、選定圖表後,在ECharts的官網裡進行代碼修改和效果調試,直到滿意。(如果有條件,這一步可以交給前端工程師)
2、根據已經完成的代碼模板,將數據部分在IPythong notebook裡用經過了pandas和Python數據清洗處理後的數據進行替換。
3、如果在IPython notebook裡無法出現圖表效果,檢查數據結構是否正確。可以將代碼和數據重新拷貝到ECharts的調試器裡進行檢查。
閱讀更多 老陳打碼 的文章