-
绘制疫情地图
看到百度的每日新冠地图,就想着自己也可以利用echarts绘制一个,但是echarts绘制特定的数据,又不想直接去抄写下来,于是搜索看有没有接口直接提供数据,最后查到天行数据可以免费的调用一万次,足够调试使用了,根据数据格式遍历提取一下就可以实现地图的绘制了。
-
实现方案与代码
使用pyecharts 和 requests 获取天行数据提供的省市疫情数据,然后将字典数据提取后放置到Map函数设置显示。
import requests
from pyecharts.charts import Map
from pyecharts import options as opts
from pyecharts.globals import ThemeType
params = {
'key': '你的apiKey'
}
response = requests.get('http://api.tianapi.com/txapi/ncovcity/index', params=params)
content = response.json()['newslist']
data = []
for item in content:
data.append([item['provinceShortName'], item['currentConfirmedCount']])
map = (
Map(init_opts=opts.InitOpts(bg_color="#FFFAFA", theme=ThemeType.ESSOS, width=1000))
.add("确诊人数", data)
.set_global_opts(
title_opts=opts.TitleOpts(title="基于天行数据的疫情地图"),
visualmap_opts=opts.VisualMapOpts(
is_piecewise=True,
pieces=[
{"min": 2000, "label": '>2000人', "color": "#eb2f06"},
{"min": 1000, "max": 2000, "label": '1001-2000人', "color": "#FF3030"},
{"min": 500, "max": 1000, "label": '500-1000人', "color": "#FF4500"},
{"min": 100, "max": 499, "label": '100-499人', "color": "#FF7F50"},
{"min": 10, "max": 99, "label": '10-99人', "color": "#FFA500"},
{"min": 1, "max": 9, "label": '1-9人', "color": "#FFDEAD"},
],
range_text=['高', '低'],
),
)
)
map.render(path="./中国疫情人数分级设色地图.html")
-
效果图如下
网友评论