Python code for COVID-19

Python code for COVID-19

import requests
import json
import matplotlib.pyplot as plt
import math

from pyecharts.charts import Map, Geo
from pyecharts import options as opts
from pyecharts.globals import GeoType, RenderType

url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'
datas = json.loads(requests.get(url=url).json()['data'])
china = datas['areaTree'][0]['children']
data = []

for i in range(len(china)):
    data.append([china[i]['name'], china[i]['total']['confirm']])

confirm = datas['chinaTotal']['confirm']
suspect = datas['chinaTotal']['suspect']
dead = datas['chinaTotal']['dead']
heal = datas['chinaTotal']['heal']
lastUpdateTime = datas['lastUpdateTime']
print(confirm, suspect, dead, lastUpdateTime)
dayList=datas['chinaDayList']
print(dayList)
cc=[]
dd=[]

###### abandoned #####
f = 0.384
r=27.3
d=1
pp=[]
for aa in dayList:
    cc.append(aa['confirm'])
    dd.append(aa['date'])
    pp.append(r * math.exp( f * d))  ## for data expectation
    d = d+1
    if d==300:
        break


plt.plot(dd, cc, color='red', marker='+')

for a,b in zip(dd,cc):
    if b < 10000:
        plt.text(a, b+0.1, '%.0f' % (b), ha='center', va= 'bottom',fontsize=12)
    else:
        plt.text(a, b+0.1, '%.0f (%s)' % (b,a), ha='center', va= 'bottom',fontsize=12)
#plt.plot(dd, pp, color='blue', marker='x')

plt.xlabel('date')
plt.ylabel('accumulated confirms')
plt.title('cases number of covid-19')
plt.show()

china_total = "确诊:" + str(confirm) + " 疑似:" + str(suspect) + " 死亡:" + str(dead) + " 治愈:" + str(
    heal) + " 更新日期:" + lastUpdateTime

geo = (
    Geo(init_opts=opts.InitOpts(width="1200px", height="600px", bg_color="#404a59", page_title="全国疫情实时报告",
                                renderer=RenderType.SVG, theme="white"))  # 设置绘图尺寸,背景色,页面标题,绘制类型
    .add_schema(maptype="china", itemstyle_opts=opts.ItemStyleOpts(color="rgb(49,60,72)",
                                                                   border_color="rgb(0,0,0)"))  # 中国地图,地图区域颜色,区域边界颜色

    # 设置地图数据,动画方式为涟漪特效effect scatter
    .add(series_name="geo", data_pair=data, type_=GeoType.EFFECT_SCATTER)
    .set_series_opts(  # 设置系列配置
        label_opts=opts.LabelOpts(is_show=False),  # 不显示Label
        effect_opts=opts.EffectOpts(scale=6))  # 设置涟漪特效缩放比例
    .set_global_opts(  # 设置全局系列配置
        # visualmap_opts=opts.VisualMapOpts(min_=0, max_=sum / len(datas)), # 设置视觉映像配置,最大值为平均值
        title_opts=opts.TitleOpts(title="全国疫情地图", subtitle=china_total, pos_left="center", pos_top="10px",
                                  title_textstyle_opts=opts.TextStyleOpts(color="#fff")),

        # 设置标题,副标题,标题位置,文字颜色
        legend_opts=opts.LegendOpts(is_show=False),  # 不显示图例
    )
)

geo.render(path="./render.html")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值