超火動態(tài)排序圖:代碼不到40行,手把手教你!

前言
最近,這種動態(tài)排序條形圖視頻超級火,如下圖:

具體來說,這種圖可以叫:Bar Chart Race,有什么國家GDP的、某某沉浮史等等,為了符合公眾號的身份屬性,我們?yōu)榇蠹抑谱髁诉@個較為簡單的可視化視頻:2015~2019中國私募基金市場風(fēng)云變幻,先一睹為快吧!
和背景音樂一起播放更搭配哦!
大家可以基于私募基金數(shù)據(jù)做出更多有趣的可視化來!也歡迎大家踴躍投稿哦!
擇日不如撞日,今天公眾號手把手教你!
我們使用最流行的Python語言,基于Matplotlib來實現(xiàn)上面的動態(tài)效果。案例和數(shù)據(jù)自1500年以來世界上10個最大城市排名。
準備工作
導(dǎo)入相關(guān)庫:

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



數(shù)據(jù)轉(zhuǎn)換
使用pandas進行轉(zhuǎn)換,得到前10個值。


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


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

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


細節(jié)刻畫
為了方便起見,我們將代碼遷移到draw_barchart函數(shù)中:
Text:更新字體大小、顏色、方向
Axis:將x軸移動到頂部,添加顏色和副標題
Grid:在bars添加
Format:逗號分隔值和軸標記符
Remove:框架,y軸標簽


動態(tài)化,激動人心!
要對上圖進行動畫處理,我們將使用 matplotlib.animation 中的 FuncAnimation。

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



我們還可以通過下面的紅框,調(diào)整速度、倒退等操作。
你可以將動畫對象保存為視頻或gif形式:

OK,大功告成!趕快一顯身手吧!
整個代碼不到40行!

獲取代碼
代碼鏈接:https://pan.baidu.com/s/1MBCCkvEdeboWS2Qkkp59RA ?
密碼:djxd
