pyechart 实时显示_Python利用pyechart做中国各省份实时疫情分布地图

b1ae3f16da4bc47890c992a3a29c2f4d.png

今天和大家分享的是Python爬取网易实时疫情数据利用pyechart做中国各省份实时疫情分布地图。这是和前面发布的一篇推文一个系列的。部分代码请看前面的文章。

本文选取的网易提供的API:

http://c.m.163.com/ug/api/wuhan/app/index/feiyan-data-list

返回的数据格式如下图:

3aecd0b5028cd3ea81e22b8e17b26495.png

爬取网易API接口实时数据

# 爬取疫情数据def geturl(url):try:
response = requests.get(url, headers=headers)print(response.status_code)if response.status_code == 200:
content_field = json.loads(response.text)
list_datas_1 = content_field['data']['list']return list_datas_1else:print('返回代码:' + response.status_code)return None except Exception as e:print('此页有问题!', e)return None

获取各个省份疫情数据

def makedict_pro(list,province_name):
dict1 = {}
dict2 = {}for item in list:for k,v in item.items():if json.dumps(item["confirm"]) != "null":
dict2[v] =dict2.get(v,0) +item["confirm"]return dict1,dict2

把获取的数据传入绘图函数,绘制各省份疫情地图:

def makemap_china(dict):# 省和直辖市    province_distribution = dictvalue=province_distribution.values()# maptype='china' 只显示全国直辖市和省级    title = str(int(time.strftime("%Y%m%d"))-1)+"中国疫情地图"    map = Map()
map.set_global_opts(title_opts=opts.TitleOpts(title=title), visualmap_opts=opts.VisualMapOpts(max_=200, is_piecewise=True, pieces=[
{"min": 191, "label": ">190", "color": "#780707"}, #数据范围分段,分颜色,可以根据数据大小具体分配大小 {"max": 190, "min": 151, "label": "190-151", "color": "#8A0808"}, {"max": 150, "min": 121, "label": "150-121", "color": "#B40404"}, {"max": 120, "min": 91, "label": "120-91", "color": "#CD1111"}, {"max": 90, "min": 61, "label": "30-21", "color": "#DF0101"}, {"max": 60, "min": 31, "label": "60-31", "color": "#F68181"}, {"max": 30, "min": 1, "label": "30-1", "color": "#F5A9A9"}, {"max": 0, "min": 0, "label": "0", "color": "#FFFFFF"}, ], ) #最大数据范围,分段 )
map.add(title, data_pair=province_distribution.items(), maptype="china", is_roam=True)
map.render('中国疫情地图.html')

调用函数完成项目需求

list_data = geturl(url)
pdataList = {'四川': 0, '浙江':0, '福建': 0, '江苏': 0, '湖南': 0, '山东': 0, '安徽': 0, '广东': 0, '河北': 0, '湖北': 0, '吉林': 0,'上海': 0, '江西': 0, '广西': 0, '贵州': 0, '北京': 0, '云南': 0, '重庆': 0, '河南': 0, '陕西': 0, '山西': 0, '辽宁': 0, '新疆': 0, '内蒙古': 0, '黑龙江': 0, '天津':0, '甘肃': 0, '海南': 0, '青海': 7.0, '宁夏': 0, '西藏': 0}for p in pdataList:
    dict_data1,dict_data2 = makedict_pro(list_data,p)
makemap_pro(dict_data1,p)
makemap_china(dict_data2)

运行项目就可以生成全国各省疫情地图的网页了。效果如图:

22d5836922e7ab7d081091e69bda04aa.png

生成的网页默认引用地图资源的是

https://assets.pyecharts.org/assets/echarts.min.js
https://assets.pyecharts.org/assets/maps/guangdong.js

网站有时候请求资源不稳定,建议自己把资源本地化。

假如您觉得还不错,扫码帮忙关注一下呗:

24271fe75638dd076b2cc567c5f1812f.png

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_39540725

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值