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

智极领航
• 阅读 3271

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

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

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

获取疫情数据

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

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

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

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

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

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

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

绘制地图

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

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

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

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

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

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

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

留给你去实现的功能

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

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

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

关注【公众号:软件测试布道师】,回复【python】,即可获取【python自动化及编程实践资料】
点赞
收藏
评论区
推荐文章
徐小夕 徐小夕
5年前
什么是低代码(Low-Code)?
阿里云云原生应用研发平台EMAS彭群(楚衡)https://www.cnblogs.com/aliyunemas/p/14004815.html一、前言如果选择用一个关键词来代表即将过去的2020年,我相信所有人都会认同是“新冠”。疫情来得太快就像龙卷风,短短数月就阻断了全世界范围内无数人与人之间的物理连接。但好在,我们已经全面迈入
Wesley13 Wesley13
4年前
SOHO 办公场景下,企业数据保护指南
简介:为了共同抵抗疫情,众多企事业单位开始SOHO办公(也叫线上办公),以有效降低人员接触导致的交叉感染风险,这是互联网时代给予疫情防御战线的一份礼物。与此同时,这类新型的办公方式也给企事业单位的数据安全保护带来了更多挑战,阿里云数据安全专家建议从五个方面着手,提升企业数据安全保护能力,并提供免费咨询服务。病毒肆掠,疫情严峻。为了共同抵抗疫情,众多企
Aidan075 Aidan075
4年前
用数据可视化的形式,展示新冠疫情全国殉职医护人员名单。
↑关注星标  有趣的不像个技术号每晚九点,我们准时相约  大家好,我是朱小五今天的一切都是灰色的。我在腾讯视频上,看到了一个数可视x腾讯新闻制作的视频。它用数据可视化的形式,展示新冠疫情全国殉职医护人员名单。每一个英雄名字都值得铭记!据不完全统计,疫情期间至少有39名医护人员殉职,平均年龄49岁,最大的73岁,最
Stella981 Stella981
4年前
Flutter混合开发踩坑指北
2020年这个长假因为新型冠状病毒疫情显得格外不一样,好多小伙伴应该已经闲的长毛了,再坚持一下,相信国家很快就会控制住的。这两天实在不知道做啥了,开始跟着keep计划健身,为即将来临的工作热身,今天学习了一下Flutter的混合开发知识。Flutter与Android的原生混合开发学习中遇到一些问题,现在记录如下。首先看一下如何创建一个Flutter
Wesley13 Wesley13
4年前
JAVA代码载入史册,但还有80%程序员没有彻底理解IOC...
前几天,在全国抗击新冠肺炎疫情表彰大会上,阿里的三行健康码代码被载入史册。健康码在疫情防控期间,是中国数字化抗疫见证。这三行代码分别是:支付宝团队研发的健康码系统第一行代码;阿里云研发的全国健康码引擎第一行代码;阿里巴巴达摩院研发的新冠肺炎CT影像AI辅助诊断产品第一行代码。!(https://oscimg.oschina.net/o
Stella981 Stella981
4年前
Python模块
目录pyecharts模块简介安装pyecharts测试pyecharts模块pyecharts实战:绘制新冠肺炎疫情地图需求分析请求数据提取数据处理数据制作可视化地图设置可视
Wesley13 Wesley13
4年前
IDC:混合云和软件定义是未来数字基础架构的主流模式
1、数字化转型帮助用户再后疫情时代抢占先机虽然疫情已经大体平息,但我们可能永远都不会回到疫情发生前的生活方式,在这种背景下,数字化转型会给人们的生活和工作带来更大的助力。以前我们的工作大部分是面对面开展的,但是疫情使很多人开始通过线上合作、线上会议、线上视频的方式来开展工作,而支撑这些场景的就是IT基础架构。我们观察到全球的数字化已经进入了一个新阶段
Stella981 Stella981
4年前
Python轻松帮你分析全网谁家的热干面最畅销
疫情爆发以来,吃货们都过上了居家隔离的日子,虽说疫情防控形势持续向好,但是经常外出吃饭的人却不是很多,各类方便的速食食品成了年轻人的最爱,其中热干面就是很多吃货的最爱之一。之前文章(Python揭秘为什么你看到的文字评论和图片都是最好的(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%
Wesley13 Wesley13
4年前
#Shape Identity 002 期:LDAP 协议入门
疫情肆虐,不仅对老百姓生命健康造成重大威胁,对各行各业的发展也造成重大影响。同时,开学、复工在即,疫情防控进入了关键阶段,「居家隔离、远程办公」是当下遏制疫情扩散的最佳防控措施。!1918年的西班牙流感席卷全球的模拟(https://cdn.authing.cn/blog/flu.gif)2019新型冠状病毒(2019nCoV)使得中国一夜之
Wesley13 Wesley13
4年前
#Shape Identity 003 期:JustAuth 从开源到喜提「码云GVP」之路
疫情肆虐,不仅对老百姓生命健康造成重大威胁,对各行各业的发展也造成重大影响。同时,开学、复工在即,疫情防控进入了关键阶段,「居家隔离、远程办公」是当下遏制疫情扩散的最佳防控措施。!1918年的西班牙流感席卷全球的模拟(https://cdn.authing.cn/blog/flu.gif)2019新型冠状病毒(2019nCoV)使得中国一夜之
Wesley13 Wesley13
4年前
2020 年中国程序员薪资和生活现状调查报告
前言程序员一直都是一个备受人们关注的群体,互联网的飞速发展时期,市场对程序员的需求尤为旺盛。但是2020年,受疫情的影响,企业无法按时正常复工,大家也十分关心疫情对程序员工作的影响。为了更好地为大家服务,对中国程序员薪资和生活现状做了一些调查,对近40万优秀程序员进行了一次详细的调查,详细报告如下:1\.