1. 程式人生 > 程式設計 >利用Python製作動態排名圖的實現程式碼

利用Python製作動態排名圖的實現程式碼

大家好,今天我們要講的是如何使用 Pyecharts 製作動態排名變化圖:point_down:

利用Python製作動態排名圖的實現程式碼

製作這樣的一個動態圖使用到的是 Pyecharts中的TimeLine(時間線輪播圖) ,程式碼實現起來其實稍有難度,但我希望能 通過講解這樣一張動態圖的製作過程,來讓各位讀者可以使用Pyecharts將任何一種圖動起來 ,我們開始吧!

利用Python製作動態排名圖的實現程式碼

首先我們需要思考一下這樣一種 動態圖的生成邏輯 ,不就是把每天的資料製作成一張條形圖然後輪動嗎,OK那我們的 資料要整理成啥樣 呢? 一個dataframe,每列是一個國家近20天的資料,還有一個儲存20天時間的list:point_down:

利用Python製作動態排名圖的實現程式碼

搞定資料之後我們去Pyecharts官方示例網站找到一個類似的圖

http://gallery.pyecharts.org/#/Timeline/timeline_bar_with_graphic

利用Python製作動態排名圖的實現程式碼

官網示例程式碼和效果都給你了,我們要做的就是 將這段程式碼改成我們需要的形式 ,現在我們將這段程式碼複製到Notebook中,並修改將圖 顯示在notebook中

利用Python製作動態排名圖的實現程式碼

接下來我們 觀察這段程式碼與圖 ,首先要改的是,把他 每次兩組變數改為一組變數,然後刪掉和修改一些不需要的文字 :point_down:

利用Python製作動態排名圖的實現程式碼

上圖左邊是修改前的程式碼,右邊是程式碼修改的部分,就不用多做解釋了,直接看圖,現在我們的圖就成了這樣:point_down:

利用Python製作動態排名圖的實現程式碼

是不是有點意思了,接下來也是稍微有一點難度的部分就是 修改座標軸和對應的資料

,這時我們先觀察下這段程式碼 如何控制座標軸和資料

利用Python製作動態排名圖的實現程式碼

可以看到x軸呼叫了 Faker.choose() ,y軸呼叫了 Faker.values() 列印我們單獨呼叫一下出來看看

利用Python製作動態排名圖的實現程式碼

你看這倆方法每次 返回一個list ,並且這個 list是變化 的,並且要注意到他的 X寫在迴圈外 ,所以x軸一直沒有變,但 y軸的值寫在了迴圈裡面 ,通過這樣的方式來讓每次生成的圖資料不一樣。

利用Python製作動態排名圖的實現程式碼

所以我們接下來的目的就很明確了,因為我們的 條形圖是有順序 的所以我們需要寫兩個函式,在生成每一張圖的時候,返回一組x軸資料,一組y軸資料,並且是按照順序排列的,所以可以這麼寫:point_down:

利用Python製作動態排名圖的實現程式碼

稍微解釋一下修改的地方, get_value() 函式就是 將df1傳進去,再把每一行的資料傳出來

,k是用來識別 呼叫次數 的,這樣可以保證每次呼叫下一行的資料。接著在迴圈裡面,將我們傳出來的確診數量和國家名使用Pandas進行排序並返回兩個list,此時這 兩個list一一對應並且確診數量是降序排列

此時我們的需求就實現了,用這個X,Y替換掉原始碼的X,Y即可

利用Python製作動態排名圖的實現程式碼

其實到這裡,就已經結束了,點選播放就可以實現輪動了,但接下來可以稍微修改部分程式碼來調整細節

利用Python製作動態排名圖的實現程式碼

上面這兩處修改就是調整了每張圖的切換時間,自動播放和反轉XY軸,此時就大功告成,你的條形圖就成功的動起來:point_down:

利用Python製作動態排名圖的實現程式碼

利用Python製作動態排名圖的實現程式碼

以上就是從0到1製作動態條形圖的過程,感興趣的一定要敲一遍程式碼。注意本文用柱狀圖示例,但是 不管條形圖還是餅圖還是折線圖甚至地圖,體現到程式碼不就是Bar還是Line嗎 ,想製作不同的動態圖不就是 修改一行程式碼 的事嗎。我們再回顧一下剛剛的步驟:思考想要做的圖——>從官網找個demo——>觀察程式碼——>修改部分程式碼——>搞定!學會了嗎?

注:本文使用的資料與程式碼,點選閱讀原文即可獲取(使用電腦端才可以正常下載),當然鼓勵自己嘗試一點一點寫~

總結

到此這篇關於利用Python製作動態排名圖的文章就介紹到這了,更多相關Python動態排名圖內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!