腾讯全国疫情实时动态 + pyecharts可视化

目前全国疫情爆发的厉害,我们可以自己用python写个程序,实时观察全国各地区疫情动态,下面,我们来步入正题。

先导入代码模块

import time
import requests
import json
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bar, Line, Pie, Grid, Map

然后就是主要的代码部分

首先创建一个类,拿到腾讯疫情网页的URL:

这个URL在网页打开是这样的

想要实时观察疫情动态,就要根据现在的时间去更新疫情数据,这个可以用python来实现,写一个时间戳就可以了,然后把时间戳拼接到URL中

然后就是解析url,先把数据变成json数据,我这里用的是replace替换,开头和结尾都要替换,然后用键拿值

response = requests.get(self.url).text
data_o = response.replace(_(, )  # 替换开头
data_t = data_o.replace(), )  # 替换结尾
data_th = json.loads(data_t)[data]  # 拿到json数据中 data 的值
china_data = json.loads(data_th)[areaTree][0][children]  # 拿到json数据中 children 的值

然后创建一个空数据集,用for循环遍历拿到的数据,再创建一个空字典,利用空字典设置键等于遍历的某些值,用pandas制成图表,可以将数据直接保存到Excel中

# 设置一个数据集
data_set = []
for i in china_data:
    # 创建空字典
    data_dict = {}
    # 地区名称
    data_dict[province] = i[name]
    # 疫情数据
    data_dict[nowConfirm] = i[total][nowConfirm]  # 现有确诊
    data_dict[confirm] = i[total][confirm]  # 累计确诊
    data_dict[dead] = i[total][dead]  # 死亡人数
    data_dict[heal] = i[total][heal]  # 治愈人数
    data_dict[wzz] = i[total][wzz]  # 本土无症状确诊
    data_dict[provinceLocalConfirm] = i[total][provinceLocalConfirm]  # 地区本地确诊
    data_set.append(data_dict)
fd = pd.DataFrame(data_set)  # 制成表格
fd.to_excel(全国地区疫情数据.xls)  # 保存Excel

然后就是数据可视化了

利用pyecharts可以绘制柱形图,折线图,扇形图,甚至是中国地图

下面我们绘制地图

china_map = (
    Map()
    # china--意为中国地图
    .add(现有确诊, [list(i) for i in zip(fd[province].values.tolist(), fd[nowConfirm].values.tolist())], china)
    .add(治愈人数, [list(i) for i in zip(fd[province].values.tolist(), fd[heal].values.tolist())], china)
    .set_global_opts(
        title_opts=opts.TitleOpts(title=各地区疫情情况, pos_top=50%, pos_left=65%),
        visualmap_opts=opts.VisualMapOpts(max_=500, is_piecewise=True),
        legend_opts=opts.LegendOpts(pos_left=90%, pos_top=60%)
    )
)
china_map.render(map.html)

代码如下

上面就是全国的疫情动态,下次还有全世界的

经验分享 程序员 微信小程序 职场和发展