社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

CDA数据分析师 • 5 年前 • 1041 次点击  




 CDA数据分析师 出品  

作者:Mika

数据:真达  

后期:泽龙 

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

Show me data,用数据说话

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

点击下方视频,先睹为快:


目前,我国新冠疫情已经大幅度好转,各省市在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用于绘图。


# 导入包
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Timeline, Line


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


# 读入数据
df = pd.read_excel('USA_UI_1967_2020.xlsx')
df.head() 


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


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


# 时间处理
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网页中。


代码实现:

# 实例化一个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年以后的数据进行绘制,最后让我们看到绘制后的成品:



关注CDA数据分析师公众号
回复关键字“失业人数” 
获取详细 数据代码

CDA数据分析师 


参考资料:

https://coronavirus.jhu.edu/map.html

https://oui.doleta.gov/unemploy/claims.asp


文出品:CDA数据分析师(ID: cdacdacda)


📚推荐阅读 READ MORE

(点击下方图片阅读)

Python爬取15万条《我是余欢水》弹幕,还原一个丧到极致的中年人生


 

📌CDA课程咨询


喜欢本篇内容请点个“在看”哦!❤️

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/62075
 
1041 次点击