帶大家用40行python代碼實現一個疫情地圖

最近兩個月,因爲新冠病毒無情的肆虐,相信會給每個中國人的記憶中畫上重重的一筆。到今天爲止,疫情形勢依然十分嚴峻,雖然除湖北外的其他省份已經連續十一天確診人數下降,但是接下來還有將近至少1.6億的人口遷徙,這無疑還存在一定的風險。

相信很多人和我一樣,早上起牀的第一件事情都是查看疫情數據,一般的數據都配有中國確診人數的地圖,之前看到csdn推過一篇文章,有同學用python實現疫情地圖,我覺得挺有意思的,於是就嘗試自己動手也寫一個,主要用到如下的庫:

- 網絡請求:requests
- 繪製圖表的庫:pyecharts	

獲取疫情數據

在騰訊新聞和支付寶中,都能看到疫情數據,但是獲取支付寶的數據難度相對大一些,所以決定從騰訊新聞的數據入手,首先在chrome中打開鏈接:https://news.qq.com//zt2020/page/feiyan.htm,然後通過chrome開發者工具(F12)過濾對應的XHR接口(XHR格式的接口,是ajax異步請求網絡數據的接口,一般定義的接口可通過XHR過濾),如下圖:
在這裏插入圖片描述

通過查看圖中所有的接口,是獲取各個省份醫院數量、根據省份名稱查詢每日新增確診人數的數據,並沒有我們需要的全國各個省份確診人數的數據。我們再切換到chrome開發者工具的console來看看開發是否有打印對應的數據,bingo!果然找到了比較有用的信息:
在這裏插入圖片描述

我們看上圖兩個關鍵信息,一個是紅框內的url,另一個是打印的全部數據,我們從其中找到了我們需要的全國各個省份的確診總數量。數據源確定了,接下來就是使用requests庫請求數據,並且將上圖areaTree下面的children中的數據取出來:

在這裏插入圖片描述

上面的代碼需要注意一點,就是requests.get(data_url).json()[“data”]返回的是字符串,需要將其轉成json,才能從中將值取出來。現在數據有了,萬事俱備,只欠東風!接下來我們開始繪製中國地圖。

繪製地圖

python中進行圖表繪製的庫主要有兩個:matplotlibpyecharts, 相比較而言:

  • matplotlib中提供了BaseMap可以用於地圖的繪製,但是個人覺得其繪製的地圖不太美觀,另外一個重要的原因,其安裝有點麻煩,可能存在兼容性問題。
  • pyecharts是基於百度開源的js庫echarts而來,其最大的特點是:簡單,安裝簡單、使用也簡單。

所以最終決定用pyecharts來繪製地圖,其核心代碼如下:

在這裏插入圖片描述

在pyecharts的官方文檔(https://pyecharts.org/#/zh-cn/)中詳細的列出了繪製各種圖表的方法及參數的含義,最重要的,文檔中提供了各種可供參考的demo,方便我們更快的實現功能。

到這裏所有的代碼都實現完成了,數了下,除掉註釋,總共40行代碼,是不是很簡單,是不是很強大!上個我們實現的效果圖:
在這裏插入圖片描述

留給你去實現的功能

想要掌握一個知識點,最好的方法就是去實踐,這裏給大家留兩個小小的需求:

  • 實現一個折線圖,展示中國除湖北外每日新增確診人數變化趨勢圖。
  • 實現一個你所在城市,每天新增確診人數變化的柱狀圖。

如果你完成了,可以將圖片貼出來,大家一起分享交流下。可以將圖片貼到知識星球相應的討論主題(https://t.zsxq.com/Fuj2fY3),微信公衆號回覆消息貌似沒辦法回覆圖片。

發佈了20 篇原創文章 · 獲贊 0 · 訪問量 4061
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章