腾讯全国疫情实时动态 + 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)
代码如下
上面就是全国的疫情动态,下次还有全世界的
