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

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

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

获取疫情数据

在腾讯新闻和支付宝中,都能看到疫情数据,但是获取支付宝的数据难度相对大一些,所以决定从腾讯新闻的数据入手,首先在chrome中打开链接:https://news.qq.com//zt2020/page/feiyan.htm,然后通过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),微信公众号回复消息貌似没办法回复图片。

带大家用40行python代码实现一个疫情地图的更多相关文章

  1. 40多行python代码开发一个区块链。

    40多行python代码开发一个区块链?可信吗?我们将通过Python 2动手开发实现一个迷你区块链来帮你真正理解区块链技术的核心原理.python开发区块链的源代码保存在Github. 尽管有人认为 ...

  2. 六十来行python代码完成一个文件分类器

    ​    你的桌面是否像这样的一样被各种文件给堆满了,但是每一个文件又不清楚是否后面还有作用,也不敢删除,自己一个一个转移又太麻烦了.没关系,今天我带大家用python一起来做一个文件归类器,一键进行 ...

  3. 如何用20行Python代码打造一个微信群聊助手?

    今天要教大家一个黑科技,20行代码实现自己定制的微信群聊助手,可以用来活跃群气氛,好多群主创建完群后,拉完一群人,之后就一片寂静,有个群聊助手,就可以帮忙活跃群里气氛,通过今天在自己的微信上有一大批好 ...

  4. 一个 11 行 Python 代码实现的神经网络

    一个 11 行 Python 代码实现的神经网络 2015/12/02 · 实践项目 · 15 评论· 神经网络 分享到:18 本文由 伯乐在线 - 耶鲁怕冷 翻译,Namco 校稿.未经许可,禁止转 ...

  5. 200行Python代码实现2048

    200行Python代码实现2048 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面 ...

  6. 30行Python代码实现人脸检测

    参考OpenCV自带的例子,30行Python代码实现人脸检测,不得不说,Python这个语言的优势太明显了,几乎把所有复杂的细节都屏蔽了,虽然效率较差,不过在调用OpenCV的模块时,因为模块都是C ...

  7. 21行python代码实现拼写检查器

    引入 大家在使用谷歌或者百度搜索时,输入搜索内容时,谷歌总是能提供很好的拼写检查,比方你输入 speling,谷歌会立即返回 spelling. 前几天,看到http://norvig.com/spe ...

  8. 15行python代码,帮你理解令牌桶算法

    本文转载自: http://www.tuicool.com/articles/aEBNRnU   在网络中传输数据时,为了防止网络拥塞,需限制流出网络的流量,使流量以比较均匀的速度向外发送,令牌桶算法 ...

  9. vim中凝视多行python代码

    在vim中凝视多行python代码比較麻烦,主要由下面几种方法: (1)将须要凝视的代码以文档字符串的形式呈现 (2)将须要凝视的代码以函数的形式呈现 (3)使用vim自身快捷键 我们主要使用第三种方 ...

随机推荐

  1. U盘中了蠕虫病毒,文件夹都变成exe了,怎么办?

    昨天做实验,用U盘拷了实验室的文件,然后就中了病毒了(无奈),U盘里的文件全都变成了exe.有点慌张,我的U盘里存了很多课程资料.然而,我懒得下载杀毒软件.参考这位博主的做法,我成功的找回了我隐藏的文 ...

  2. React Native 性能优化指南【全网最全,值得收藏】

    2020 年谈 React Native,在日新月异的前端圈,可能算比较另类了.文章动笔之前我也犹豫过,但是想到写技术文章又不是赶时髦,啥新潮写啥,所以还是动笔写了这篇 React Native 性能 ...

  3. C#调用JS的WebService的方法返回null

    连上了别人的VPN后,使用WebService测试软件测试了一下,结果正常,但是当我在vs里面添加WebService服务,调用的时候就出现了问题,问题如下图: 后来问了一下服务端那边的同事,他们说服 ...

  4. PQSQL 按照时间进行分组

    按照时间分组时一般是按照年.月.日进行分组,不会把时分秒也算进去,所以需要把时间戳提取出所需要的时间段,本质上是把时间戳格式化成对应形式的字符串,这个过程需要用to_char(timestamp, t ...

  5. C#实现DataTable转TXT文件

    实现DataTable转TXT文件代码如下: public ExecutionResult DataTableToTxt(DataTable vContent, string vOutputFileP ...

  6. python 条件判断的三元表达式

    示例:求两数中最大者 在JavaScript中代码如下: x = 1; y = 2; console.log(x > y ? x : y) 在python中代码如下: # 条件为真时的返回结果 ...

  7. dp - LIS

    某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于 ...

  8. TCP/IP协议与HTTP协议(一)

    1.什么是TCP/IP  如果要了解一个人,可以从他归属的集体聊起来.我们的HTTP协议就属于TCP/IP协议家族中的一员,了解HTTP协议再整个网络流程中的地位,也能更加充分的理解HTTP协议. 要 ...

  9. Unable to open debugger port (127.0.0.1:57046): java.net.SocketException "so

    原因分析: 出现这个报错的原因是因为端口被占用导致的. 解决方法: 解决方法主要两种:修改端口配置(推荐).关闭占用端口的进程(不推荐). 方式一:修改端口配置(推荐) 被占用的端口可能是本地端口,也 ...

  10. Elasticsearch 开箱指南

    内容概要 ES 基础介绍,重点是其中的核心概念. 基础 API 实践操作. 1. 基础介绍 Elasticsearch (ES) 是一个数据库,提供了分布式的.准实时搜索和分析. 基于 Apache ...