前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >美国失业人数突破2200万!这个动态图我用Python画出来了

美国失业人数突破2200万!这个动态图我用Python画出来了

作者头像
CDA数据分析师
发布2020-05-06 15:30:33
5710
发布2020-05-06 15:30:33
举报
文章被收录于专栏:CDA数据分析师CDA数据分析师


CDA数据分析师 出品

作者:Mika

数据:真达

后期:泽龙

【导语】:今天我们聊聊美国失业人数,Python技术部分可以直接看第二部分。公众号后台,回复关键字“失业人数”获取完整数据。

Show me data,用数据说话

今天我们聊聊 美国失业人数

点击下方视频,先睹为快:https://v.qq.com/x/page/z0953svoin1.html

目前,我国新冠疫情已经大幅度好转,各省市在3到4月份已经开始复产复工,连受灾最严重的武汉也解封了,全国的情况逐渐步入正轨。

但同时全球疫情十分严峻, 根据美国约翰斯.霍普金斯大学统计的数据显示,截至北京时间19日晚6时38分,全球新冠死亡病例超过16万例,达到161,324例,全球确诊病例突破230万,达2,343,293例。

根据数据,目前死亡病例最多的国家是美国,为33,903例。美国同时还是全球确诊病例最多的国家,累计确诊病例突破70万,达到722,761例。

疫情给全球人民带来的不仅仅是生命的威胁,同样还有经济上的困境以及失业危机。因为疫情的影响,美国陷入了“裁员潮”,很多美国人不得不因为这次疫情被辞退,从而申请失业救济金。

01

美国失业人数超2200万

抹去11年来所有新增就业

美国劳工部16日公布的数据显示,受新冠疫情在美国蔓延影响,上周美国首次申请失业救济人数达到524.5万,这意味着过去四周美国首次申请失业救济人数已累计达到约2200万,这约占美国劳动力总数的八分之一,基本抹去了08年金融危机以来过去11年所有的新增就业。

特别是这个由美国劳工部统计的失业救济人数动态图,也是引爆全网,从中可以看到自六十年代来,美国的失业救济人数一直是上下波动。而受这次疫情影响,美国失业救济人数像坐了火箭一般,一路飙升。

(结尾高能,一定要看到最后!)

美国每周首次申请失业救济人数

来源:美国劳工部 United States Department of Labor

那么作为一个技术号,我们就来探讨一下这个动态图怎么做。今天我们就教你用Python来实现!

02

教你用Python绘制

美国申请失业险人数动态图

我们使用pyecharts包进行美国申请失业保险人数的动态趋势图的绘制,如果你没有安装pyecharts,可以使用以下代码进行pip安装。

pip install pyecharts

制作这样的一个动态图使用的是Pyecharts中的的TimeLine(时间线轮播图)的类。使用TimeLine的方法,你可以轻松地将绘制带有时间序列的动态图形,比如动态条形图、动态饼图、动态桑基图、动态地图等等。

首先需要导入我们需要使用的包,其中pandas用于数据整理,pyecharts用于绘图。

代码语言:javascript
复制
# 导入包
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Timeline, Line

首先使用pandas读入数据,我们选取的数据来自于美国劳工部官方网站,数据包含了从1967年07月01日~2020年04月04日的申请失业保险人数,这是一份带有时间序列的面板数据,适合进行动态可视化绘图使用。

代码语言:javascript
复制
# 读入数据
df = pd.read_excel('USA_UI_1967_2020.xlsx')
df.head() 

在绘图之前,首先我们需要梳理一下生成动图的逻辑和思路。

我们将绘图数据分为维度和度量来思考,在这个条形图的绘制中,时间就是维度,S.A.(申请失业保险人数)就是度量值,绘制动态折线图就是把每天的数据制作成一张截止到当天的折线图然后轮动,下面使用Pandas对时间数据进行简单的处理,并选取2000年以后的数据进行图形的绘制,处理后的数据如下所示:

代码语言:javascript
复制
# 时间处理
df['time_index'] = pd.to_datetime(df['time_index'])
df['time_index'] = df['time_index'].dt.date.astype('str')

# 选取子集
df_sel = df.loc[:, ['time_index', 'S.A.']]
df_sel['time_2'] = df_sel['time_index'].copy()
df_sel = df_sel.set_index('time_index') 
df_sel = df_sel.loc[(df_sel.index>='2000-01-01')] 
df_sel.head() 

接下来使用Pyecharts库中的TimeLine和Line类进行图形的绘制,代码说明如下,其中的配置项可以看到pyecharts官网 https://pyecharts.org 进行查看。

图形生成在本地的html网页中。

代码实现:

代码语言:javascript
复制
# 实例化一个timeline
t1 = Timeline(init_opts=opts.InitOpts(width='1350px', height='750px'))
# 添加配置项
t1.add_schema(play_interval=1,  # 播放的速度
              is_loop_play=False,  # 是否循环播放
              linestyle_opts=opts.LineStyleOpts(width=0.5),
              )

# 时间数据
time_date = df_sel.index.values.tolist()

for i in time_date:
    # 绘制线形图
    line = Line()
    line.add_xaxis(df_sel.loc[:i, 'time_2'].values.tolist())
    line.add_yaxis('', df_sel.loc[:i, 'S.A.'].values.tolist())
    line.set_global_opts(title_opts=opts.TitleOpts('美国申请失业保险{}日人数'.format(i))
                        )
    line.set_series_opts(label_opts=opts.LabelOpts(is_show=False),
                         linestyle_opts=opts.LineStyleOpts(width=2)
                         )
    # 添加到t1中
    t1.add(line, '{}'.format(i))

# 生成HTML文档
t1.render('美国申请失业保险动态折线图.html') 

这里我们选取2000年以后的数据进行绘制,最后让我们看到绘制后的成品:http://mpvideo.qpic.cn/0bf27uabgaaafyafs4u4nnpfb7odcp6qaeya.f10002.mp4?dis_k=27010e3cc87fc48bcbbc8ce90cc34c81&dis_t=1588750156

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CDA数据分析师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图数据库 KonisGraph
图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档