------------------------------更新--------------------------------------
原网页https://news.qq.com/zt2020/page/feiyan.htm或已改变,以下代码仅供参参考。
另,可参考另一篇类似博客:https://blog.csdn.net/weixin_43636302/article/details/104289556
每日新增疑似和湖北省内外确诊对比
import json
import requests
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
url="https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5"
resp=requests.get(url)
html=resp.json()
data=json.loads(html["data"])
chinaDayAddList=data["chinaDayAddList"]
dailyNewAddHistory=data["dailyNewAddHistory"]
print(chinaDayAddList)
da=[]
for i in range(len(chinaDayAddList)):
da.append([chinaDayAddList[i]["date"],chinaDayAddList[i]["confirm"] , chinaDayAddList[i]["suspect"], chinaDayAddList[i]["dead"],chinaDayAddList[i]["heal"],chinaDayAddList[i]["deadRate"],chinaDayAddList[i]["healRate"],dailyNewAddHistory[i]["hubei"],dailyNewAddHistory[i]["notHubei"]])
print(da)
df = pd.DataFrame({})
df["date"] = [x[0] for x in da]
df["confirm"] = [x[1] for x in da]
df["suspect"] = [x[2] for x in da]
df["dead"] = [x[3] for x in da]
df["heal"] = [x[4] for x in da]
df["deadRate"] = [x[5] for x in da]
df["healRate"] = [x[6] for x in da]
df["hubei"] = [x[7] for x in da]
df["notHubei"] = [x[8] for x in da]
print(df)
fig = plt.figure(figsize=(10, 5))
count = df.count()['date']
index = np.arange(count)
df['index'] = index
print(df)
#设置横坐标间隔
limit=1
# 设置横坐标的刻度与显示标签
plt.xticks(index[::limit], df['date'][::limit],rotation=90)
plt.title("每日新增疑似和湖北省内外确诊对比")
ax1 = plt.gca()
#设置坐标标题
ax1.set(xlabel='date', ylabel='人数')
#解决画图中文乱码问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
line1, = ax1.plot(index, df['confirm'], color='black',linestyle= '-',linewidth=2,alpha=0.9,label='confirm')
line2, = ax1.plot(index, df['suspect'], 'grey', label='suspect')
line3, = ax1.plot(index, df['hubei'], color='black',linestyle= '--',linewidth=2,alpha=0.9, label='hubei_confirm')
line4, = ax1.plot(index, df['notHubei'],color='black',linestyle= ':',linewidth=2,alpha=0.9, label='notHubei_confirm')
#设置图例
plt.legend(handles=[line1, line2,line3,line4])
plt.show()
每日新增死亡和治愈
import json
import requests
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
url="https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5"
resp=requests.get(url)
html=resp.json()
data=json.loads(html["data"])
chinaDayAddList=data["chinaDayAddList"]
print(chinaDayAddList)
print(len(chinaDayAddList))
da=[]
for i in range(len(chinaDayAddList)):
da.append([chinaDayAddList[i]["date"],chinaDayAddList[i]["confirm"] , chinaDayAddList[i]["suspect"], chinaDayAddList[i]["dead"],chinaDayAddList[i]["heal"],chinaDayAddList[i]["deadRate"],chinaDay