前言

文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者:谦睿科技

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun

Python

Python的设计哲学是“优雅、明确、简单”。它的语言方式与自然语言很接近 ,具有很好的可阅读性,当然理解起来也就不是晦涩难懂,更容易让人亲近。

Python语言(Python原意是一种“大蟒蛇”)

Python在最新的编程语言排名中第三名

目前我国也正在逐步将Python纳入教学体系,浙江省已纳入高考,7选3。山东省甚至将其作为小学六年级的信息学教材。南京市列入中考特招项。

当前全球的疫情还在持续中,我们如用python来制作疫情趋势变化图?

在遇到难题时当然要学会去GitHub找找思路,只需要在GitHub上搜索疫情数据就能看到很多大神做的疫情数据爬虫

甚至有些会项目提供数据接口(https://lab.isaaclin.cn/nCoV/),按照使用说明调用端口即可。注意请求频率哦

AkShare 是基于 Python 的开源数据接口库, 目的是实现对期货, 期权, 基金等衍生金融产品和另类数据从数据采集, 数据清洗加工, 到数据下载的工具, 满足金融数据科学家, 数据科学爱好者在数据获取方面的需求。那么这个提供金融数据的库目前也采集了网易和丁香园的疫情数据提供给大家

使用起来也很简单

import akshare as ak
epidemic_hist_all_df = ak.epidemic_hist_all() #获取全部历史数据

最近国内疫情已经有所好转,但是国外的情况不容乐观,那么怎样用Python去制作动态图表来看全球疫情变化趋势呢?比如下面的国内外疫情发展趋势:

其实用Python实现并不难,简单来说就分为三步:

  • 获取数据(requests)
  • 数据清洗(pandas)
  • 数据可视化(pyecharts)

数据获取与处理

疫情数据获取并不是很难,在目前互联网上已经有许多提供数据的网站。

接下来两行命令就能拿下所有历史数据

data = requests.get('https://lab.isaaclin.cn/nCoV/api/area?latest=0')
data = data.json()

先来看下数据量

可以看到一共采集到了7584条数据,由于脏数据比较多,所以这一部分的工作量是比较大的。

首先要将所有数据从字典提取出来并对时间戳进行转换,然后将数据保存到pandas里

data = requests.get('https://lab.isaaclin.cn/nCoV/api/area?latest=0')
data = data.json()
res = data['results']
df = pd.DataFrame(res)
def time_c(timeNum):
    timeTemp = float(timeNum/1000)
    tupTime = time.localtime(timeTemp)
    stadardTime = time.strftime("%Y-%m-%d %H:%M:%S", tupTime)
    return stadardTime for i in range(len(df)):     df.iloc[i,16] = time_c(df.iloc[i,16]) for i in range(len(df)):     df.iloc[i,16] = df.iloc[i,16][5:10]

现在数据就成了这样

这样看起来就舒服多了,但是还是不可以使用,因为API每天会采集很多次数据,所以里面有很多重复数据和异常数据,所以接下来重点处理这一部分。对于重复数据我们只保留最新一个,对于空数据我们选择前一天的数据填充。

#去重部分代码
tem = df1[df1['updateTime'] == '03-02']
tem = tem.drop_duplicates(['provinceShortName'], keep='last')
for i in date[1:41]:
    tem1 = df1[df1['updateTime'] == i]
    tem1 = tem1.drop_duplicates(['provinceName'], keep='last')
    tem = tem.append(tem1) tem = tem.reset_index(drop=True)
tem

由于篇幅原因,就不再贴出更多的代码,我们来看下最终处理完的数据

数据可视化

首先是国内外疫情趋势

public class MyActivity extends AppCompatActivity from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar, Page, Pie, Timeline,Grid def timeline_bar() -> Timeline:
    x = ['国内','国外']
    tl = Timeline()
    tl = Timeline()
    tl.add_schema(is_auto_play = True,
    play_interval = 500,
    is_loop_play = False)
    k= 0
    for i in date:
        bar = (
            Line()
            .add_xaxis(date)
            .add_yaxis("国内", hs(c1,k))
            .add_yaxis("国外", hs(c,k))
            .extend_axis(
            yaxis=opts.AxisOpts(
            )
        )
            .set_series_opts(
            areastyle_opts=opts.AreaStyleOpts(opacity=0.5),
            label_opts=opts.LabelOpts(is_show=False),
        )
            .set_global_opts(title_opts=opts.TitleOpts("{}国内外疫情趋势".format(i)))
        )
        tl.add(bar, "{}".format(i))
        k = k + 1
    return tl
timeline_bar().render_notebook()

可以看出,国内的增长已经处于平缓状态,而国外自二月底来突然爆发,目前还处于上升期,这也是为什么现在要严防境外输入病例。再来看看国外具体的病例占比吧(微信GIF只能上传5M所以有点糊):

可以看出在最近几天韩国、日本、意大利突然爆发,这三个国家的病例数量就占到了约75%。最后再来看看全球疫情的变化趋势吧!

至此,我们就完全使用Python对疫情数据进行了一次动态可视化,最后还是要说一句,疫情仍未散去,大家要继续做好防护!

果你处于想学Python或者正在学习Python,Python的教程不少了吧,但是是最新的吗?

说不定你学了可能是两年前人家就学过的内容,在这小编分享一波2020最新的Python教程。

以上这些教程小编已经为大家打包准备好了,希望对正在学习的你有所帮助!

获取方式,私信小编 “ 资料 ”,即可免费获取哦

用python画出全球疫情趋势变化图的更多相关文章

  1. 利用python画出动态高优先权优先调度

    之前写过一个文章. 利用python画出SJF调度图 动态高度优先权优先调度 动态优先权调度算法,以就绪队列中各个进程的优先权作为进程调度的依据.各个进程的优先权在创建进程时所赋予,随着进程的推进或其 ...

  2. 用初中代数结合python画出正方形

    在屏幕上打印类似下面的图形: 常规画正方形的算法: 这几乎是初学所有计算机语言时都会遇到的问题.算法都大致类似,就是找出打印规律然后用计算机语句表达出来.最常规的算法是:输入数字n就打印n行,首行和尾 ...

  3. python画出心形图

    程序员表达爱的方式真是多种多样.比如,用python来画一个心型,献给梦中的情人,代码如下: from turtle import * pensize(1) pencolor('red') fillc ...

  4. Python爬取全球疫情数据,实现可视化显示地图数据(附代码)

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 武汉地区,目前已经实现住院患者清零了,国内疫情已经稳定,然而中国以外新冠确 ...

  5. 利用python画出SJF调度图

    最先发布在csdn.本人原创. https://blog.csdn.net/weixin_43906799/article/details/105510046 SJF算法: 最短作业优先(SJF)调度 ...

  6. 程序员如何 10 分钟用 Python 画出蒙娜丽莎?

    之前看到过很多头条,说哪国某人坚持了多少年自学使用excel画画,效果十分惊艳.对于他们的耐心我十分敬佩. 但是作为一个程序员,自然也得挑战一下自己. 这种需求,我们十分钟就可以完成! 基本思路   ...

  7. 用Python绘制全球疫情变化地图

    目前全球疫情仍然比较严重,为了能清晰地看到疫情爆发以来至现在全球疫情的变化趋势,我绘制了一张疫情变化地图,完整代码共 230 行,需要的朋友在公众号回复关键字 疫情地图 即可. 废话不多说,先上图 下 ...

  8. 【疫情动态条形图】用Python开发全球疫情排名动态条形图bar_chart_race

    一.开发背景 你好,我是 @马哥python说 ,这是我用Python开发的全球疫情动态条形图,演示效果: https://www.zhihu.com/zvideo/15603276220259696 ...

  9. 用Python的Plotly画出炫酷的数据可视化(含各类图介绍,附代码)

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 我被狗咬了 在谈及数据可视化的时候,我们通常都会使用到matplo ...

随机推荐

  1. React Native新项目启动报错'React/RCTBridgeDelegate.h' file not found

    React Native版本:0.60.4 解决方法: cd ios pod deintegrate pod install 然后重新启动就好了(示例页面变样了( ⊙ o ⊙ )) END------ ...

  2. 最小生成树的Prim算法以及Kruskal算法的证明

    Prime算法的思路:从任何一个顶点开始,将这个顶点作为最小生成树的子树,通过逐步为该子树添加边直到所有的顶点都在树中为止.其中添加边的策略是每次选择外界到该子树的最短的边添加到树中(前提是无回路). ...

  3. Mysql性能优化:为什么要用覆盖索引?

    导读 相信读者看过很多MYSQL索引优化的文章,其中有很多优化的方法,比如最佳左前缀,覆盖索引等方法,但是你真正理解为什么要使用最佳左前缀,为什么使用覆盖索引会提升查询的效率吗? 本篇文章将从MYSQ ...

  4. [尊老爱幼] Queen

    You are given a rooted tree with vertices numerated from 1 to n . A tree is a connected graph withou ...

  5. Serpent.AI - 游戏代理框架(Python)

    Serpent.AI - 游戏代理框架(Python) Serpent.AI是一个简单而强大的新颖框架,可帮助开发人员创建游戏代理.将您拥有的任何视频游戏变成一个成熟的实验的沙箱环境,所有这些都是熟悉 ...

  6. Fiddler抓取数据包分析案例

    案例:利用Fiddler抓取苏宁易购网站数据包分析 抓包软件:Fiddler4 请求名字:www.suning.com 详细内容: 一.了解数据包区域的字段含义 图1数据包区域 #:顺序号,按照抓包的 ...

  7. Jmeter接口测试之参数传递(十三)

    在接口自动化测试中,经常会遇到的一种场景就是参数的场景,比如在用户列表中获取所有的用户列表,然后获取到某一个用户的ID,查看该用户的详细信息.首先在这里理清思路,它的流程是,首先获取到数据,然后在Jm ...

  8. 150+行Python代码实现带界面的数独游戏

    150行代码实现图形化数独游戏 Github地址,欢迎各位大佬们fork.star啥的,感谢: 今天闲着没事干,以前做过html+js版的数独,这次做个python版本的,界面由pygame完成,数独 ...

  9. coding++:TransactionDefinition 接口介绍

    TransactionDefinition类结构: 作用: 1.TransactionDefinition接口被用于Spring事物支持的核心PlatformTransactionManager接口, ...

  10. [noip模拟]数字对<RMQ&二分>

    数字对 [题目描述] 小H是个善于思考的学生,现在她又在思考一个有关序列的问题. 她的面前浮现出一个长度为n的序列{ai},她想找出一段区间[L, R](1 <= L <= R <= ...