用Python+pyECharts做个新冠肺炎本省疫情动态 - Go语言中文社区

用Python+pyECharts做个新冠肺炎本省疫情动态


2020开年就遇到这种糟心事,搞得全国人民不但没法好好过个鼠年春节还不知何时才能等到一切恢复正常……全国的疫情动态很多平台上都有,但作为家里蹲咱更想了解离自己更近些的情况,反正闲着也是闲着,正好作为十几年的.Net码农最近也想研究下Python,于是本着边学边试的想法弄个本省疫情动态试试。
数据取自腾讯新闻疫情动态,之前网上逛的时候看到几个例程里拉JSON的URL都不对,自己用浏览器的开发者工具看了下找到合用的(详见代码)

路人:Talk is cheep,show me the code.
老P:Ok,here u r…

import time, json, requests
from datetime import datetime, date, timedelta
from pyecharts import Map, Bar, Line, Page

url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5&callback=&_=%d' % int(
    time.time() * 1000)
data = json.loads(requests.get(url=url).json()['data'])
yesterday = date.today() + timedelta(days = -1)
lastUpdate = data['lastUpdateTime']
total = data['chinaTotal']
areaTree = data['areaTree']
DayList = data['chinaDayAddList']
#读取福建数据
fujian = dict()
for item in areaTree:
    if (item['name'] == '中国'):
        for item in item['children']:
            if (item['name'] == '福建'):
               fujian = item['children']
               break
        break

#读取各市数据
fjcity = []
confirm = []
todayConfirm = []
for item in fujian:
    fjcity.append(item['name'] + '市') #省级地图里各地级市名称必须以“市”字结尾,否则Map无法正确显示
    ctotal = item['total']
    confirm.append(int(ctotal['confirm']))
    ct = item['today']
    todayConfirm.append(int(ct['confirm']))
#读取全国新增数据
dates = []
dc = []
ds = []
#dd = []
dh = []
for item in DayList:
    dates.append(item['date'])
    dc.append(int(item['confirm']))
    ds.append(int(item['suspect']))
    #dd.append(int(item['dead']))
    dh.append(int(item['heal']))
#图表生成
map = Map('福建省2019-nCoV疫情(' + yesterday.strftime("%Y-%m-%d") + ')', '注:省卫健委每日11时发布前一天疫情通报n更新时间:' + lastUpdate, width=1024, height=768)
map.add("确诊病例", fjcity, confirm, maptype='福建',visual_range=[0, max(confirm)], is_visualmap=True, visual_text_color='#000',is_label_show=True)

bar = Bar()
bar.add('确诊病例',fjcity,confirm,is_label_show=True)
bar.add('新增确诊病例',fjcity,todayConfirm,is_label_show=True)

l = len(dates)
line = Line('附:全国疫情','最近7天数据(来源:腾讯新闻疫情动态)')
line.add('新增确诊',dates[l-7:l],dc[l-7:l],is_label_show=True)
line.add('新增疑似',dates[l-7:l],ds[l-7:l],is_label_show=True)
#line.add('新增死亡',dates[l-7:l],dd[l-7:l],is_label_show=True)
line.add('新增治愈',dates[l-7:l],dh[l-7:l],is_label_show=True)
#页面生成
page = Page('福建省2019-nCoV疫情')
page.add(map).add(bar).add(line)
page.render(path=u'D:\nCoV\map2019.html') #保存为HTML文件,该文件可直接在浏览器中打开,也可发布到Web服务器上

效果:
图表纵列,适合在手机里看

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/isapi/article/details/104162932
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 18:30:15
  • 阅读 ( 1158 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢