第十四屆全國運動會已經(jīng)開始了,大家看比賽了嗎?你最喜歡什么運動?家鄉(xiāng)選手都表現(xiàn)得怎么樣?
借此機會,我將展示基本的數(shù)據(jù)收集和可視化案例。
可視化歷屆全國運動會的金牌得主
1.整理數(shù)據(jù)
沒有找到現(xiàn)成的結(jié)構(gòu)化數(shù)據(jù)表,但找到了以下文本數(shù)據(jù):
格式比較規(guī)則,稍微處理一下就可以使用。
(這里是1~12屆,上一屆第13屆因為開始取消獎牌榜了,我就不管了,不影響我們展示)于是我把數(shù)據(jù)全部復制下來,然后通過?SublimeText?的正則查找替換功能做一下初步的處理。平常一些簡單的文本或數(shù)據(jù)處理,我都會這么做,不一定非要用代碼處理。好一點的文本編輯器也都有類似的功能。
把多余的文字刪除掉之后,剩下的就是只有空行和?┃?符號分隔的數(shù)據(jù),用代碼很容易讀取:
將每屆的獎牌榜存成一個單獨的?DataFrame,再全部放進一個?list?列表里。順便我還把數(shù)據(jù)存成了?excel。(文末會提供數(shù)據(jù)和代碼下載)
同時,為了展示方便,我只篩選出了歷屆曾經(jīng)拿過前三的隊伍,用于后續(xù)作圖,分別是:
上海、北京、山東、廣東、江蘇、解放軍、遼寧
從所有數(shù)據(jù)中,把這幾支隊伍的金牌數(shù)依次取出,保存成列表:
2. Matplotlib 折線圖
Python 做可視化圖表最常用的庫就是?matplotlib。代碼很簡單:
折線圖很適合展示隨時間變化的數(shù)據(jù),也適合多組同類數(shù)據(jù)的對比。
比如這張圖上,可以直觀地看出,解放軍隊在最初兩屆獲得了遠超其他隊的金牌,而像山東、遼寧、江蘇的金牌數(shù)量整體呈比較明顯的上升趨勢。
如果不做可視化,只是盯著密密麻麻的數(shù)字,那可能眼睛都要看瞎了。
順便說下,圖表上顯示中文的時候會出現(xiàn)顯示為?□?的情況,需要額外做處理,我這里用的方法是自己下載一個字體文件使用:
另外還有一種方法是:
3. PyEcharts 折線圖
Matplotlib 的圖表簡單實用,功能也很強大,但都是靜態(tài)的。如果需要可交互的動態(tài)圖表,則可以使用?pyecharts?庫。
用法也很簡單:
在這個圖上,你可以選擇隱藏/顯示部分數(shù)據(jù),鼠標移到某個節(jié)點上是也會顯示詳細信息。
特別提醒兩點:
1. 我這里是在?jupyter notebook?上進行開發(fā)(數(shù)據(jù)分析可視化推薦使用),所以可以直接調(diào)用?.render_notebook()?顯示動態(tài)圖表。如果你是其他 IDE,可以改成?.render("文件名.html")?的方式輸出結(jié)果頁面。
2. PyEcharts 之前做過較大更新,以至于網(wǎng)上很多教程里的用法在新版本上已經(jīng)無法使用了。所以你在通過網(wǎng)上資料學習 PyEcharts 時,一定要看清版本,建議看新出的教程或官網(wǎng)的例子。
以上就是將全運會歷屆金牌榜進行可視化展示的學習案例。有什么疑問,歡迎大家在留言中討論,或?qū)⒋a問題發(fā)至我們的答疑論壇上,我將會為大家解答。
數(shù)據(jù)及代碼:
如果文章對你有幫助,歡迎轉(zhuǎn)發(fā)/點贊/收藏~
----
獲取更多教程和案例,
歡迎搜索及關(guān)注:Crossin的編程教室
每天5分鐘,輕松學編程。
1.《【全運會金牌榜】「可視化」全運會歷屆金牌榜》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《【全運會金牌榜】「可視化」全運會歷屆金牌榜》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/tiyu/2621736.html