带大家用40行python代码实现一个疫情地图

最近两个月,因为新冠病毒无情的肆虐,相信会给每个中国人的记忆中画上重重的一笔。到今天为止,疫情形势依然十分严峻,虽然除湖北外的其他省份已经连续十一天确诊人数下降,但是接下来还有将近至少1.6亿的人口迁徙,这无疑还存在一定的风险。

相信很多人和我一样,早上起床的第一件事情都是查看疫情数据,一般的数据都配有中国 确诊人数 的地图,之前看到csdn推过一篇文章,有同学用python实现疫情地图,我觉得挺有意思的,于是就尝试自己动手也写一个,主要用到如下的库:

- 网络请求:requests
- 绘制图表的库:pyecharts

获取疫情数据

在腾讯新闻和支付宝中,都能看到疫情数据,但是获取支付宝的数据难度相对大一些,所以决定从腾讯新闻的数据入手,首先在chrome中打开链接: https://news.qq.com//zt2020/p... ,然后通过chrome开发者工具(F12)过滤对应的XHR接口(XHR格式的接口,是ajax异步请求网络数据的接口,一般定义的接口可通过XHR过滤),如下图:

通过查看图中所有的接口,是获取各个省份医院数量、根据省份名称查询每日新增确诊人数的数据,并没有我们需要的全国各个省份确诊人数的数据。我们再切换到chrome开发者工具的console来看看开发是否有打印对应的数据,bingo!果然找到了比较有用的信息:

我们看上图两个关键信息,一个是红框内的url,另一个是打印的全部数据,我们从其中找到了我们需要的全国各个省份的确诊总数量。数据源确定了,接下来就是使用requests库请求数据,并且将上图areaTree下面的children中的数据取出来:

上面的代码需要注意一点,就是requests.get(data_url).json()["data"]返回的是字符串,需要将其转成json,才能从中将值取出来。现在数据有了,万事俱备,只欠东风!接下来我们开始绘制中国地图。

绘制地图

python中进行图表绘制的库主要有两个: matplotlibpyecharts , 相比较而言:

  • matplotlib中提供了BaseMap可以用于地图的绘制,但是个人觉得其绘制的地图不太美观,另外一个重要的原因,其安装有点麻烦,可能存在兼容性问题。
  • pyecharts是基于百度开源的js库echarts而来,其最大的特点是: 简单 ,安装简单、使用也简单。

所以最终决定用pyecharts来绘制地图,其核心代码如下:

在pyecharts的 官方文档 ( https://pyecharts.org/#/zh-cn... ,最重要的,文档中提供了各种可供参考的demo,方便我们更快的实现功能。

到这里所有的代码都实现完成了,数了下,除掉注释,总共 40行 代码,是不是很简单,是不是很强大!上个我们实现的效果图:

留给你去实现的功能

想要掌握一个知识点,最好的方法就是去实践,这里给大家留两个小小的需求:

  • 实现一个折线图,展示中国除湖北外每日新增确诊人数变化趋势图。
  • 实现一个你所在城市,每天新增确诊人数变化的柱状图。

如果你完成了,可以将图片贴出来,大家一起分享交流下。可以将图片贴到知识星球相应的讨论主题( https://t.zsxq.com/Fuj2fY3) ,微信公众号回复消息貌似没办法回复图片。

关注【公众号:软件测试布道师】,回复【python】,即可获取【python自动化及编程实践资料】
我来评几句
登录后评论

已发表评论数()

相关站点

热门文章