基於Pandas+ECharts的金融大資料視覺化實現方案
前言
最近無意中看到一篇文章,介紹的是在IPython Notebook裡實現ECharts的視覺化效果。我個人對ECharts一直是推崇有加,是baidu釋出的開源專案中我比較喜歡的一個,絕對是良心之作了。所以,看到這篇文章著實小激動了一把。
今天借花獻佛,利用金融證券資料,舉幾個小例子,給大家分享一下實現過程。順便告訴大家,怎麼在tushare裡呼叫前十大股東及流通股東資料的介面。
ECharts介紹
以下摘自ECharts官網的介紹:
ECharts,一個純 Javascript 的圖表庫,可以流暢的執行在 PC 和移動裝置上,相容當前絕大部分瀏覽器,底層依賴輕量級的 Canvas 類庫 ZRender,提供直觀,生動,可互動,可高度個性化定製的資料視覺化圖表。
ECharts 3 中更是加入了更多豐富的互動功能以及更多的視覺化效果,並且對移動端做了深度的最佳化。
ECharts的成名,得益於幾年前百度人口遷徙大資料效果的展示,當年看到那個基於地圖連線忽閃忽閃的效果,簡直了,太高大上了。最近一年在北京偶爾拜訪一些所謂的大資料公司,進門顯眼位置看見的那些大螢幕資料展示,估計很多都是基於ECharts開發的。
2
與Python的結合
ECharts主要是應用在web和app領域,跟Python應用的結合,目前在Django,Flask等web框架裡更為常見。今天要介紹的,也是在IPython Notebook裡基於web的效果展示,而在IPython qtconsole等環境下似乎無能為力。
實際上,在IPython Notebook裡使用ECharts相比純web開發環境,要複雜麻煩一些。但是在IPython Notebook裡作為除matplotlib以外的資料視覺化方案,ECharts或許可以成為一個強有力候補。尤其是在基於國內地圖、關係圖、桑基圖等方面的資料展示上,ECharts完全可以擔當大任,遊刃有餘。
3
實現原理
在IPython Notebook裡,有一個display的模組,可以實現HTML效果的展示。而最核心的條件是notebook自帶一個JS模組,可以透過RequireJS動態匯入js指令碼並執行。
我們先來看看HTML程式碼在IPython notebook裡簡單的實現效果:
透過RequireJS,引入ECharts包
然後配置echarts熟悉和資料
4
圖表效果例項
這裡只給大家展示K線圖、折線圖和餅圖的效果,只揭示實現原理和過程,具體的程式碼最佳化和圖表功能的完善,可以自行研究ECharts的相關資料來改進。
要實現這三類圖表,這裡借用股票日線行情資料、前十大股東持股佔比資料和前十大流通股東持股比例來舉例。(請將tushare升級到最新版。)
1、K線圖效果
透過tushare的get_k_data獲取日線前復權資料,這裡透過中國聯通來演示。根據上文的實現原理,我們執行程式碼後可以看到如下效果。
2、折線圖效果
演示的折線圖效果實際是我選用了關係圖進行了改造,常規的折線圖大家可以參考ECharts官網的程式碼。
這裡我用到了tusahre的新資料介面“十大流通股東”資料來做演示,資料包括了前十大股東和十大流通股東歷年各季度的持股數量和佔比。折線圖我用前十大股東歷年持股佔比情況來演示。
根據線圖實現的程式碼,執行後,效果如下:
3、餅圖效果
餅圖用到了前十大流通股資料,選用浦發銀行2016年第三季度的資料作為示例。
對前十大流通股東資料安裝ECharts資料格式進行處理,程式碼大致如下:
完整執行後,可以看到最終效果圖。
5
總結
ECharts實際可以大大豐富Python的圖表和展示效果。但是要想用好,需要對ECharts的用法有所瞭解,特別是要實現自定義的圖表的時候,更要對底層程式碼進行研究。
這裡有三個應用方面的小技巧分享一下:
1、選定圖表後,在ECharts的官網裡進行程式碼修改和效果除錯,直到滿意。(如果有條件,這一步可以交給前端工程師)
2、根據已經完成的程式碼模板,將資料部分在IPythong notebook裡用經過了pandas和Python資料清洗處理後的資料進行替換。
3、如果在IPython notebook裡無法出現圖表效果,檢查資料結構是否正確。可以將程式碼和資料重新複製到ECharts的偵錯程式裡進行檢查。
6
演示程式碼獲取
已經將以上效果的所有程式碼完整儲存到了IPython Notebook格式的檔案裡,有興趣的朋友可以直接在挖地兔公眾號私信回覆“圖表”,自動獲取程式碼檔案下載地址。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69908612/viewspace-2671322/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 大資料視覺化該如何實現大資料視覺化
- 資料視覺化:基於 Echarts + Python 實現的動態實時大屏範例【11】視覺化EchartsPython
- 分享20份大屏視覺化模板,輕鬆實現資料視覺化視覺化
- 基於Python實現互動式資料視覺化的工具(用於Web)Python視覺化Web
- 大資料視覺化大資料視覺化
- 基於bootstrap實現視覺化佈局工具boot視覺化
- 遇見大資料視覺化 : 那些 WOW 的資料視覺化案例大資料視覺化
- 基於 Echarts 的資料視覺化在異構資料平臺的實踐Echarts視覺化
- Python實踐:基於Matplotlib實現某產品全年銷量資料視覺化Python視覺化
- 大螢幕實時資料視覺化解決方案?視覺化
- Python 如何實現資料視覺化Python視覺化
- 使用Echarts來實現資料視覺化Echarts視覺化
- 大資料視覺化的特點大資料視覺化
- 關於資料視覺化的思考視覺化
- 如何在移動端資料視覺化大屏實現分析?視覺化
- 資料大屏視覺化解決方案,常用的資料視覺化工具軟體視覺化
- 基於Python的資料視覺化 matplotlib seaborn pandasPython視覺化
- 資料視覺化實踐視覺化
- 個推0程式碼資料視覺化實操:基於Tableau的中國奧運資料探索視覺化
- [Echarts視覺化] 二.php和ajax連線資料庫實現動態資料視覺化Echarts視覺化PHP資料庫
- 大資料視覺化的意義在哪大資料視覺化
- 大資料視覺化的新進展大資料視覺化
- 基於數字孿生+視覺化技術的智慧充電站視覺化運維平臺方案視覺化運維
- 基於鑽孔資料的三維地質模型視覺化模型視覺化
- 基於Kerberos的大資料安全方案ROS大資料
- 基於雲原生的大資料實時分析方案實踐大資料
- 什麼是大資料視覺化大資料視覺化
- 大資料視覺化優勢在哪大資料視覺化
- 大資料視覺化怎麼做大資料視覺化
- 資料大屏視覺化挑戰視覺化
- 資料視覺化--實驗五:高維非空間資料視覺化視覺化
- 關於資料視覺化那些事視覺化
- Matplotlib資料視覺化基礎視覺化
- 三步帶你實現資料視覺化視覺化
- 快速實現地圖遷移資料視覺化地圖視覺化
- 如何利用資料視覺化大屏把握消防大資料平臺實況視覺化大資料
- 前端大資料視覺化從入門到實戰前端大資料視覺化
- 三維視覺化設計軟體,可以實現資料視覺化的軟體有哪些視覺化