Python3–监控疫情

  • 2020 年 2 月 18 日
  • 笔记

import requests

import json

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)

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)" )) # 中国地图,地图区域颜色,区域边界颜色

.add( series_name = "geo" , data_pair =data, type_ =GeoType.EFFECT_SCATTER) # 设置地图数据,动画方式为涟漪特效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" )

运行的效果图