600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 如何实现疫情数据的可视化 带有热力地图

如何实现疫情数据的可视化 带有热力地图

时间:2022-08-30 21:22:01

相关推荐

如何实现疫情数据的可视化 带有热力地图

干活,如何实现那种可视化地图

回顾3年疫情地图,进行数据可视化,首先看效果

实现地图热力显示,柱状图显示,最终实现动画效果

获取数据

使用api接口:

https://api./newsqa/v1/query/pubished/daily/list?province=xxx

把xxx换成某个省份即可。

使用python的requests包进行获取数据,在我的代码里只统计了每日的确诊数据,最后写入到csv文件中。

#数据爬取headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}response = requests.get("https://api./newsqa/v1/query/pubished/daily/list?province=湖北",headers = headers)data=json.loads(response.text)#处理爬取后的数据 只统计确诊数据datalist=data['data']datacsv=[['province','time','confirmed']]for num in range(len(datalist)):datacsv.append([datalist[num]['province'],str(datalist[num]['year'])+'.'+str(datalist[num]['date']),datalist[num]['newConfirm']])df = pd.DataFrame(datacsv)df.to_csv(r'output\湖北.csv',header=False,index=False,mode='a')

绘制地图

将所有数据爬取后进行整理,使用pyecharts进行绘制。示例代码

可以实现某个省份的热力图

from pyecharts import options as optsfrom pyecharts.charts import Mapfrom pyecharts.faker import Fakerprovinces=['内蒙古', '台湾', '上海', '澳门', '湖南', '浙江', '江苏']value=[56, 22, 51, 112, 112, 40, 67]c = (#Map( init_opts=opts.InitOpts(width="1900px", height="900px", bg_color="#ADD8E6",page_title="4.15全球疫情确诊人数",theme="white"))Map().add("",[list(z) for z in zip(provinces, value)], "china",label_opts=opts.LabelOpts(is_show=False),is_map_symbol_show=False,).set_series_opts(label_opts=opts.LabelOpts(is_show=False)).set_global_opts(title_opts=opts.TitleOpts(title=".1.2"),visualmap_opts=opts.VisualMapOpts(max_=200),))#c.render("map_world.html") #输出为htmlc.render_notebook() #jupyter显示

这里注意,如果你使用jupyter运行代码,那么可以使用c.render_notebook()显示结果,无需保存到本地显示。

绘制动画

使用了pyecharts的时间轴组件Timeline。示例:

from pyecharts import options as optsfrom pyecharts.charts import Map, Timelinefrom pyecharts.faker import Fakertime=['.01.20', '.01.21', '.01.22', '.01.23', '.01.24','.01.25', '.01.26', '.01.27', '.01.28', '.01.29']tl = Timeline()for i in time:map0 = (Map().add("", [list(z) for z in zip(Faker.provinces, Faker.values())], "china").set_global_opts(title_opts=opts.TitleOpts(title="{}数据".format(i)),visualmap_opts=opts.VisualMapOpts(max_=200),))tl.add(map0, "{}".format(i))#tl.render("timeline_map.html")tl.render_notebook() #jupyter显示

公众号 52DATA 看看源码

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。