基於Pandas+ECharts的金融大資料視覺化實現方案

挖地兔訂閱號發表於2022-12-08

前言


最近無意中看到一篇文章,介紹的是在IPython Notebook裡實現ECharts的視覺化效果。我個人對ECharts一直是推崇有加,是baidu釋出的開源專案中我比較喜歡的一個,絕對是良心之作了。所以,看到這篇文章著實小激動了一把。

今天借花獻佛,利用金融證券資料,舉幾個小例子,給大家分享一下實現過程。順便告訴大家,怎麼在tushare裡呼叫前十大股東及流通股東資料的介面。

1

ECharts介紹

以下摘自ECharts官網的介紹:

ECharts,一個純 Javascript 的圖表庫,可以流暢的執行在 PC 和移動裝置上,相容當前絕大部分瀏覽器,底層依賴輕量級的 Canvas 類庫 ZRender,提供直觀,生動,可互動,可高度個性化定製的資料視覺化圖表。

ECharts 3 中更是加入了更多豐富的互動功能以及更多的視覺化效果,並且對移動端做了深度的最佳化。

ECharts的成名,得益於幾年前百度人口遷徙大資料效果的展示,當年看到那個基於地圖連線忽閃忽閃的效果,簡直了,太高大上了。最近一年在北京偶爾拜訪一些所謂的大資料公司,進門顯眼位置看見的那些大螢幕資料展示,估計很多都是基於ECharts開發的。

基於Pandas+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裡簡單的實現效果:

基於Pandas+ECharts的金融大資料視覺化實現方案

透過RequireJS,引入ECharts包

基於Pandas+ECharts的金融大資料視覺化實現方案

然後配置echarts熟悉和資料

基於Pandas+ECharts的金融大資料視覺化實現方案


4

圖表效果例項

這裡只給大家展示K線圖、折線圖和餅圖的效果,只揭示實現原理和過程,具體的程式碼最佳化和圖表功能的完善,可以自行研究ECharts的相關資料來改進。

要實現這三類圖表,這裡借用股票日線行情資料、前十大股東持股佔比資料和前十大流通股東持股比例來舉例。(請將tushare升級到最新版。)

基於Pandas+ECharts的金融大資料視覺化實現方案

1、K線圖效果

基於Pandas+ECharts的金融大資料視覺化實現方案

透過tushare的get_k_data獲取日線前復權資料,這裡透過中國聯通來演示。根據上文的實現原理,我們執行程式碼後可以看到如下效果。

基於Pandas+ECharts的金融大資料視覺化實現方案


2、折線圖效果

演示的折線圖效果實際是我選用了關係圖進行了改造,常規的折線圖大家可以參考ECharts官網的程式碼。

這裡我用到了tusahre的新資料介面“十大流通股東”資料來做演示,資料包括了前十大股東和十大流通股東歷年各季度的持股數量和佔比。折線圖我用前十大股東歷年持股佔比情況來演示。

基於Pandas+ECharts的金融大資料視覺化實現方案
基於Pandas+ECharts的金融大資料視覺化實現方案

根據線圖實現的程式碼,執行後,效果如下:

基於Pandas+ECharts的金融大資料視覺化實現方案


3、餅圖效果

餅圖用到了前十大流通股資料,選用浦發銀行2016年第三季度的資料作為示例。

基於Pandas+ECharts的金融大資料視覺化實現方案
基於Pandas+ECharts的金融大資料視覺化實現方案

對前十大流通股東資料安裝ECharts資料格式進行處理,程式碼大致如下:

基於Pandas+ECharts的金融大資料視覺化實現方案

完整執行後,可以看到最終效果圖。

基於Pandas+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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章