大家好,我是天空之城,今天给大家带来小福利,Python带你一秒爬虫获取疫情数据和绘制数据图表!
import requests
import json
import pandas as pd
url='https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5&_t=0.5759220376658807'
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36'}
resp=requests.get(url,headers=headers)
resps=resp.json()
resps=resps["data"]
dataw=json.loads(resps)
datas=dataw["areaTree"][0]['children']
datas_list=[]
for i in datas:
datas_dict={}
datas_dict['地区名称']=i['name']
datas_dict['新增确诊']=i['total']['nowConfirm']
datas_dict['累计确诊']=i['total']['confirm']
datas_dict['死亡人数']=i['total']['dead']
datas_dict['治愈人数']=i['total']['heal']
datas_dict['死亡率']=i['total']['deadRate']
datas_dict['治愈率']=i['total']['healRate']
datas_list.append(datas_dict)
df=pd.DataFrame(datas_list)
print(df)
获得数据截图如下:
绘制饼图如下:
pie=(
Pie()
.add(
'',
[list(i) for i in zip(df_2['地区名称'].values.tolist(),df_2['新增确诊'].values.tolist())],
radius=['10%','30%']
)
.set_global_opts(
legend_opts=opts.LegendOpts(orient="vertical",pos_top="66%",pos_left="66%")
)
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
pie.render_notebook()
获得饼图如下:
折线图:
line = (
Line()
.add_xaxis(list(df['地区名称'].values))
.add_yaxis("治愈率",df['治愈率'].values.tolist())
.add_yaxis("死亡率", df['死亡率'].values.tolist())
.set_global_opts(
title_opts=opts.TitleOpts(title="死亡率与治愈率")
)
)
line.render_notebook ()
图片如下
柱状图:
bar = (
Bar()
.add_xaxis(list(df['地区名称'].values)[:6])
.add_yaxis("死亡", df['死亡人数'].values.tolist()[:6])
.add_yaxis("治愈",df['治愈人数'].values.tolist()[:6])
.set_global_opts(
title_opts=opts.TitleOpts(title="各地区确诊人数与死亡人数情况"),
datazoom_opts=[opts.DataZoomOpts()]
)
)
bar. render_notebook()
图片