40行Python制作超炫酷動態排序圖,有了它高逼格PPT再也不愁!


 

本文首發於量化投資與機器學習

轉載於  https://mp.weixin.qq.com/s/KaB_7oXZf0_IV97y0pRPmQ

前言

最近,這種動態排序條形圖視頻超級火,如下圖:

 

 

具體來說,這種圖可以叫:Bar Chart Race,有什么國家GDP的、某某沉浮史等等,為了符合公眾號的身份屬性,我們為大家制作了這個較為簡單的可視化視頻:2015~2019中國私募基金市場風雲變幻,先一睹為快吧!

 大家可以基於私募基金數據做出更多有趣的可視化來!也歡迎大家踴躍投稿哦!

 

擇日不如撞日,今天公眾號手把手教你!

 

我們使用最流行的Python語言基於Matplotlib來實現上面的動態效果。案例和數據自1500年以來世界上10個最大城市排名。

 

准備工作

導入相關庫:

 

 

使用pandas讀取相關城市人口數據集。我們只需要4列數據:'name'、'group'、'year'、'value'。一個名稱映射到一個組,每年有一個值。

 

原始數據集:

 

 

 

數據轉換

使用pandas進行轉換,得到前10個值。

 

 

基礎圖

讓我們畫一個基本的柱狀圖。首先創建一個圖形和一個坐標軸。然后使用ax.barh (x,y)繪制水平條形圖。

 

 

 

顏色、標簽

接下來,讓我們根據組添加值、組標簽和顏色。使用 colors 和 group_lk 為條形圖添加顏色。

 

 

group_lk 是 name 和 group 值之間的映射。

 

 

 

細節刻畫

為了方便起見,我們將代碼遷移到draw_barchart函數中:

 

  • Text:更新字體大小、顏色、方向

  • Axis:將x軸移動到頂部,添加顏色和副標題

  • Grid:在bars添加

  • Format:逗號分隔值和軸標記符

  • Remove:框架,y軸標簽

 

 

 

動態化,激動人心!

要對上圖進行動畫處理,我們將使用 matplotlib.animation 中的 FuncAnimation

 

 

Functionatio 通過反復調用函數(在畫布上繪制)來創建動畫。在本例中,該函數將是 draw_barchart。 我們使用 frames,這個參數接受你想運行的 draw_barchart 的值——我們將從1968年運行到2018年。

 


 

我們還可以通過下面的紅框,調整速度、倒退等操作。

 

你可以將動畫對象保存為視頻或gif形式:

 

 

OK,大功告成!趕快一顯身手吧!

 

整個代碼不到40行!

 

 

獲取代碼

鏈接:https://pan.baidu.com/s/1O-f2tQFErHJ-APjopGGqBA(或點擊閱讀原文)

密碼:c9ow

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM