加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
疫情信息.py 6.84 KB
一键复制 编辑 原始数据 按行查看 历史
李周 提交于 2023-06-07 21:35 . fetch:以前的项目推送一下
# 这是Sumile-的python练习
import requests
import json
import re
from pyecharts.charts import Map
from pyecharts import options
def xinxi():
#发起网络请求,获取数据
result = requests.get('https://interface.sina.cn/news/wap/fymap2020_data.d.json?1580097300739&&callback=sinajp_1580097300873005379567841634181')
#使用正则表达式处理数据
json_str = re.search("\(+([^)]*)\)+", result.text).group(1)
html = f"{json_str}"
table = json.loads(f"{html}")
province_data = []
#循环获取省份名称和对应的确诊数据
for province in table['data']['list']:
#将省份数据添加到列表中去
province_data.append((province['name'], province['value']))
city_data = []
#循环获取城市名称和对应的确诊数据
for city in province['city']:
#这里要注意对应上地图的名字需要使用mapName这个字段
city_data.append((city['mapName'], city['conNum']))
#创建国家地图
map_country = Map()
#设置地图上的标题和数据标记,添加确诊人数
map_country.set_global_opts(title_opts=options.TitleOpts(title="中国实时疫情图-确诊人数:%d"%(int(table['data']["gntotal"]))), visualmap_opts=options.VisualMapOpts(is_piecewise=True,#设置是否为分段显示
pieces=[
{"min": 1000, "label": '>1000人', "color": "#6F171F"}, # 不指定 max,表示 max 为无限大(Infinity)。
{"min": 500, "max": 1000, "label": '500-1000人', "color": "#C92C34"},
{"min": 100, "max": 499, "label": '100-499人', "color": "#E35B52"},
{"min": 10, "max": 99, "label": '10-99人', "color": "#F39E86"},
{"min": 1, "max": 9, "label": '1-9人', "color": "#FDEBD0"}]))
#将数据添加进去,生成中国地图,所以maptype要对应china。
map_country.add("确诊", province_data, maptype="china")
#一切完成,那么生成一个html网页文件。
map_country.render("country确诊.html")
province_data = []
#循环获取省份名称和对应的确诊数据
for province in table['data']['list']:
#将省份数据添加到列表中去
province_data.append((province['name'], province['deathNum']))
city_data = []
#循环获取城市名称和对应的确诊数据
for city in province['city']:
#这里要注意对应上地图的名字需要使用mapName这个字段
city_data.append((city['mapName'], city['conNum']))
#创建国家地图
map_country = Map()
#设置地图上的标题和数据标记,添加确诊人数
map_country.set_global_opts(title_opts=options.TitleOpts(title="中国实时疫情图-死亡人数:%d"%(int(table['data']["deathtotal"]))), visualmap_opts=options.VisualMapOpts(is_piecewise=True,#设置是否为分段显示
pieces=[
{"min": 1000, "label": '>1000人', "color": "#6F171F"}, # 不指定 max,表示 max 为无限大(Infinity)。
{"min": 500, "max": 1000, "label": '500-1000人', "color": "#C92C34"},
{"min": 100, "max": 499, "label": '100-499人', "color": "#E35B52"},
{"min": 10, "max": 99, "label": '10-99人', "color": "#F39E86"},
{"min": 1, "max": 9, "label": '1-9人', "color": "#FDEBD0"}]))
#将数据添加进去,生成中国地图,所以maptype要对应china。
map_country.add("死亡", province_data, maptype="china")
#一切完成,那么生成一个html网页文件。
map_country.render("country死亡.html")
province_data = []
#循环获取省份名称和对应的确诊数据
for province in table['data']['list']:
#将省份数据添加到列表中去
province_data.append((province['name'], province['cureNum']))
city_data = []
#循环获取城市名称和对应的确诊数据
for city in province['city']:
#这里要注意对应上地图的名字需要使用mapName这个字段
city_data.append((city['mapName'], city['conNum']))
#创建国家地图
map_country = Map()
#设置地图上的标题和数据标记,添加确诊人数
map_country.set_global_opts(title_opts=options.TitleOpts(title="中国实时疫情图-治愈人数:%d"%(int(table['data']["curetotal"]))), visualmap_opts=options.VisualMapOpts(is_piecewise=True,#设置是否为分段显示
pieces=[
{"min": 1000, "label": '>1000人', "color": "#6F171F"}, # 不指定 max,表示 max 为无限大(Infinity)。
{"min": 500, "max": 1000, "label": '500-1000人', "color": "#C92C34"},
{"min": 100, "max": 499, "label": '100-499人', "color": "#E35B52"},
{"min": 10, "max": 99, "label": '10-99人', "color": "#F39E86"},
{"min": 1, "max": 9, "label": '1-9人', "color": "#FDEBD0"}]))
#将数据添加进去,生成中国地图,所以maptype要对应china。
map_country.add("治愈", province_data, maptype="china")
#一切完成,那么生成一个html网页文件。
map_country.render("country治愈.html")
province_data = []
#循环获取省份名称和对应的确诊数据
for province in table['data']['list']:
#将省份数据添加到列表中去
province_data.append((province['name'], province['susNum']))
city_data = []
#循环获取城市名称和对应的确诊数据
for city in province['city']:
#这里要注意对应上地图的名字需要使用mapName这个字段
city_data.append((city['mapName'], city['conNum']))
#创建国家地图
map_country = Map()
#设置地图上的标题和数据标记,添加确诊人数
map_country.set_global_opts(title_opts=options.TitleOpts(title="中国实时疫情图-疑似人数:%d"%(int(table['data']["sustotal"]))), visualmap_opts=options.VisualMapOpts(is_piecewise=True,#设置是否为分段显示
pieces=[
{"min": 1000, "label": '>1000人', "color": "#6F171F"}, # 不指定 max,表示 max 为无限大(Infinity)。
{"min": 500, "max": 1000, "label": '500-1000人', "color": "#C92C34"},
{"min": 100, "max": 499, "label": '100-499人', "color": "#E35B52"},
{"min": 10, "max": 99, "label": '10-99人', "color": "#F39E86"},
{"min": 1, "max": 9, "label": '1-9人', "color": "#FDEBD0"}]))
#将数据添加进去,生成中国地图,所以maptype要对应china。
map_country.add("疑似", province_data, maptype="china")
#一切完成,那么生成一个html网页文件。
map_country.render("country疑似.html")
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化