用python画出全球疫情趋势变化图
前言
文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
作者:谦睿科技
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画出全球疫情趋势变化图的更多相关文章
- 利用python画出动态高优先权优先调度
之前写过一个文章. 利用python画出SJF调度图 动态高度优先权优先调度 动态优先权调度算法,以就绪队列中各个进程的优先权作为进程调度的依据.各个进程的优先权在创建进程时所赋予,随着进程的推进或其 ...
- 用初中代数结合python画出正方形
在屏幕上打印类似下面的图形: 常规画正方形的算法: 这几乎是初学所有计算机语言时都会遇到的问题.算法都大致类似,就是找出打印规律然后用计算机语句表达出来.最常规的算法是:输入数字n就打印n行,首行和尾 ...
- python画出心形图
程序员表达爱的方式真是多种多样.比如,用python来画一个心型,献给梦中的情人,代码如下: from turtle import * pensize(1) pencolor('red') fillc ...
- Python爬取全球疫情数据,实现可视化显示地图数据(附代码)
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 武汉地区,目前已经实现住院患者清零了,国内疫情已经稳定,然而中国以外新冠确 ...
- 利用python画出SJF调度图
最先发布在csdn.本人原创. https://blog.csdn.net/weixin_43906799/article/details/105510046 SJF算法: 最短作业优先(SJF)调度 ...
- 程序员如何 10 分钟用 Python 画出蒙娜丽莎?
之前看到过很多头条,说哪国某人坚持了多少年自学使用excel画画,效果十分惊艳.对于他们的耐心我十分敬佩. 但是作为一个程序员,自然也得挑战一下自己. 这种需求,我们十分钟就可以完成! 基本思路 ...
- 用Python绘制全球疫情变化地图
目前全球疫情仍然比较严重,为了能清晰地看到疫情爆发以来至现在全球疫情的变化趋势,我绘制了一张疫情变化地图,完整代码共 230 行,需要的朋友在公众号回复关键字 疫情地图 即可. 废话不多说,先上图 下 ...
- 【疫情动态条形图】用Python开发全球疫情排名动态条形图bar_chart_race
一.开发背景 你好,我是 @马哥python说 ,这是我用Python开发的全球疫情动态条形图,演示效果: https://www.zhihu.com/zvideo/15603276220259696 ...
- 用Python的Plotly画出炫酷的数据可视化(含各类图介绍,附代码)
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 我被狗咬了 在谈及数据可视化的时候,我们通常都会使用到matplo ...
随机推荐
- hdu2795billboard线段树
题目链接:http://icpc.njust.edu.cn/Problem/Hdu/2795/ 题目大意:有一块长方形木板,从上到下被分成h*w的区域,现要将n个长条放进这些区域中,要求从上到下只要后 ...
- Selenium系列(七) - 切换iframe
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...
- MySQL 教程--检视阅读
MySQL 教程--检视阅读 准备:Windows 上安装 MySQL 教程地址,PHP语言基础 教程地址2 教程地址3,有讲数据库的备份和恢复 教程地址4,w3c.china,php基础,扩展阅读 ...
- 贪心-谷歌-857. 雇佣 K 名工人的最低成本
2020-03-15 22:00:39 问题描述: 有 N 名工人. 第 i 名工人的工作质量为 quality[i] ,其最低期望工资为 wage[i] . 现在我们想雇佣 K 名工人组成一个工资组 ...
- python使用matplotlib:subplot绘制多个子图 不规则画图
https://www.cnblogs.com/xiaoboge/p/9683056.html
- Python Seaborn综合指南,成为数据可视化专家
概述 Seaborn是Python流行的数据可视化库 Seaborn结合了美学和技术,这是数据科学项目中的两个关键要素 了解其Seaborn作原理以及使用它生成的不同的图表 介绍 一个精心设计的可视化 ...
- 从零开始的JSON库
从零开始的JSON库 项目地址 jsoncpp ,此项目受到 leptjson 启发,实现了最基本的功能,仅作学习使用. 提供简单的 parse() 和 generate() 方法将 JSON 文本解 ...
- coding++:对List中每个对象元素按时间顺序排序
需求: 需要对List中的每个User按照birthday顺序排序,时间由小到大排列. package com.tree.ztree_demo.orderby; import java.text.Si ...
- iOS 项目优化
前言 iOS性能优化系列篇之"优化总体原则" 不要提前过度优化 要找到性能瓶颈 要在不同性能指标间权衡 要理解优化任务的底层运行机制 要有技术保障体系 一.启动速度优化 1.1 学 ...
- 《java编程思想》多态与接口
向上转型 定义:把某个对象的引用视为对其基类类型的引用的做法被称为向上转型方法调用绑定 将一个方法调用同一个方法主体关联起来被称作绑定. 前期绑定:程序执行前进行的绑定叫做前期绑定,前期绑定也是jav ...