2019-12-18 21:38:16 越來越多的公司開始使用Python進行數(shù)據(jù)處理。其中,對處理過的數(shù)據(jù)進行圖表生成則變得必不可少。一般來說,生成的圖表都是靜態(tài)的。最多也就是通過圖表顏色的變化使其好看一點。但是,如果讓圖表自己動起來,比如說:奔跑起來,是不是立馬可以吸引你的目光呢。 Bar Chart Races (條形圖比賽)最近悄然流行起來。‘條形圖比賽’這種形式最早出現(xiàn)在Matt Navarra的tweet上,瀏覽次數(shù)超過1000萬次。隨后,F(xiàn)lourish Studio發(fā)布了Race Chart,一款快速制作條形圖比賽的傻瓜式工具。 那么,會python的你能不能自己實現(xiàn)‘條形圖比賽’呢?答案自然是:可以。 跟著我一起來完成第一個‘Bar Chart Races’吧! 數(shù)據(jù)準備 2018年,世界城市人口最多的10大城市有哪些呢?那2017呢? 這次,就一起來做一個世界城市人口最多的10大城市的編年史吧。 使用python處理數(shù)據(jù)以及繪圖自然少不了Pandas和matplotlib這兩把利器。先導(dǎo)入一些我們會用到的python包。 接下來,導(dǎo)入世界城市人口數(shù)據(jù)。 總共有6252條數(shù)據(jù)。通過觀察,我們只需要name、group、year和value這四列數(shù)據(jù)即可。 通過iloc方法,我們截取前四列數(shù)據(jù)。1500年,北京的人口67.2萬。 而2018年世界上人口數(shù)最多的城市又有哪些呢? 2018年人口最多的城市是東京,3819.4萬。上海和北京分別為2577.8和2267.4萬。數(shù)據(jù)永遠沒有圖表來的直觀。一起先來做一個2018年城市人口Top10的柱狀圖吧! 當(dāng)然,光是這樣真的很土。一張好的圖表,一定要色彩鮮明,信息傳達清晰。因此,我們需要對圖表的字體、顏色,坐標軸樣式、坐標標簽等等進行處理。 圖表美化 通過對整個數(shù)據(jù)group列的處理,城市來自于六大板塊。那么,我們可以給六大板塊不同的配色,之后的板塊城市繼承該配色。 同時,我們將城市與對應(yīng)板塊進行配對。 通過ax.text()函數(shù),我們可以對圖表內(nèi)每一個柱狀圖城市名、對應(yīng)板塊名和人口數(shù)進行位置上的調(diào)整,調(diào)整后效果如下。 為了色彩的多樣性,我們將各個板塊的顏色添加進去,并且增加標題和坐標軸的變化。 Bar chart races制作 由于數(shù)據(jù)是以年為基礎(chǔ)的,我們將上述代碼封裝成函數(shù) bar_chart_race,參數(shù)為年-year。 有了函數(shù) bar_chart_race,就可以輕松的做出每年的柱狀圖了。 Python的繪圖包matplotlib中自帶了很多動態(tài)的變化-matplotlib.animation。其中,F(xiàn)uncAnimation可以通過循環(huán)調(diào)用繪圖函數(shù)進行圖像的更新。下面就是見證奇跡的時刻了。 將bar_chart_race函數(shù)作為參數(shù)放入animation.FuncAnimation中,就可以制成從1500年到2018年世界人口Top10城市變化圖了。 總結(jié) Matplotlib是一個很值得認真學(xué)習(xí)庫。希望你能從這篇文章中學(xué)到數(shù)據(jù)處理以及動態(tài)作圖的知識。 下面就欣賞一下我們做的動態(tài)圖吧! 代碼如下:animator.save('animation.gif', writer='pillow', fps=60) 以上便是小編給大家?guī)淼娜績?nèi)容,轉(zhuǎn)發(fā)此文+關(guān)注 并私信小編“資料”即可免費領(lǐng)取2019最新python資料和零基礎(chǔ)入門教程!以上便是小編給大家?guī)淼娜績?nèi)容,轉(zhuǎn)發(fā)此文+關(guān)注 并私信小編“資料”即可免費領(lǐng)取2019最新python資料和零基礎(chǔ)入門教程! |
|