Python製做動態圖

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

                                        

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

                                                                                                        

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

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

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

 

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

 

接下來我們觀察這段代碼與圖,首先要改的是,把他每次兩組變量改爲一組變量,然後刪掉和修改一些不需要的文字👇

 

 

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

 

 

是不是有點意思了,接下來也是稍微有一點難度的部分就是修改座標軸和對應的數據,這時我們先觀察下這段代碼如何控制座標軸和數據

 

 

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

 

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

                                                                                              

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

 

 

稍微解釋一下修改的地方,get_value()函數就是將df1傳進去,再把每一行的數據傳出來,k是用來識別調用次數的,這樣可以保證每次調用下一行的數據。接着在循環裏面,將我們傳出來的確診數量和國家名使用Pandas進行排序並返回兩個list,此時這兩個list一一對應並且確診數量是降序排列

 

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

 

 

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

 

 

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

 

                                                                                             

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章