利用Python中pyecharts組件繪制2020“新冠”疫情地圖


“新冠"疫情數據來源於騰訊疫情追蹤,網址 https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5 (截至本文編寫時網址仍有效)。

 

1. 首先安裝pyecharts模塊和對應的中國地圖組件:(可以使用國內鏡像)

 

 

 2. 引入相關包

from pyecharts.charts import Map
from pyecharts import options as opts
import requests
import json

3. 獲取數據

url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'
data = json.loads(requests.get(url=url).json()['data'])
china = data['areaTree'][0]['children']

# 省和直轄市
province_distribution = {}
 
i = 0
while i <= 33:
    key = china[i]['name']
    province_distribution[key] = province_distribution.get(key,0) + china[i]['total']['confirm']
    i += 1

4. 繪制地圖

map = Map()
map.set_global_opts(
 title_opts=opts.TitleOpts(title="實時疫情地圖 %s\n\n累計確診 %d\n現有疑似 %d\n累計治愈 %d\n累計死亡 %d"\
                           %(data['lastUpdateTime'],data['chinaTotal']['confirm'],\
                             data['chinaTotal']['suspect'],data['chinaTotal']['heal'],data['chinaTotal']['dead'])),
 visualmap_opts=opts.VisualMapOpts(max_=3600, is_piecewise=True,
          pieces=[
          {"max": 1999999, "min": 10000, "label": "10000人及以上", "color": "#8A0808"},
          {"max": 9999, "min": 1000, "label": "1000-9999人", "color": "#B40404"},
          {"max": 999, "min": 500, "label": "500-999人", "color": "#DF0101"},
          {"max": 499, "min": 100, "label": "100-499人", "color": "#F78181"},
          {"max": 99, "min": 10, "label": "10-99人", "color": "#F5A9A9"},
          {"max": 9, "min": 0, "label": "1-9人", "color": "#FFFFCC"},
          ], ) #最大數據范圍,分段
 )
map.add("確診", data_pair=province_distribution.items(), maptype="china", is_roam=True)
map.render('實時疫情地圖.html')

5. 結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM