點擊上方“Python數據科學”,星標公衆號
來源:量化投資與機器學習(ID:Lhtz_Jqxx)
本文首發於量化投資與機器學習
最近,這種動態排序條形圖視頻超級火,如下圖:
具體來說,這種圖可以叫: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行!
推薦閱讀