利用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. 结果

猜你喜欢

转载自blog.csdn.net/weixin_42765557/article/details/114482042
今日推荐