美國失業人數突破2200萬!這個動態圖我用Python畫出來了!


目前,我國新冠疫情已經大幅度好轉,各省市在3到4月份已經開始復產復工,連受災最嚴重的武漢也解封了,全國的情況逐漸步入正軌。

但同時全球疫情十分嚴峻, 根據美國約翰斯.霍普金斯大學統計的數據顯示,截至 北京時間19日晚6時38分 , 全球新冠死亡病例超過16萬例,達到161,324例,全球確診病例突破230萬,達2,343,293例。

美國失業人數突破2200萬!這個動態圖我用Python畫出來了!

根據數據,目前死亡病例最多的國家是美國,為33,903例。美國同時還是全球確診病例最多的國家,累計確診病例突破70萬,達到722,761例。

美國失業人數突破2200萬!這個動態圖我用Python畫出來了!

疫情給全球人民帶來的不僅僅是生命的威脅,同樣還有經濟上的困境以及失業危機。因為疫情的影響,美國陷入了“裁員潮”,很多美國人不得不因為這次疫情被辭退,從而申請失業救濟金。

美國失業人數突破2200萬!這個動態圖我用Python畫出來了!

美國失業人數超2200萬

抹去11年來所有新增就業

美國勞工部16日公佈的數據顯示,受新冠疫情在美國蔓延影響,上週美國首次申請失業救濟人數達到524.5萬, 這意味著過去四周美國首次申請失業救濟人數已累計達到約2200萬, 這約佔美國勞動力總數的八分之一, 基本抹去了08年金融危機以來過去11年所有的新增就業。

美國失業人數突破2200萬!這個動態圖我用Python畫出來了!

美國失業人數突破2200萬!這個動態圖我用Python畫出來了!

特別是這個由美國勞工部統計的失業救濟人數動態圖,也是引爆全網,從中可以看到自六十年代來,美國的失業救濟人數一直是上下波動。而受這次疫情影響, 美國 失業救濟人數像坐了火箭一般,一路飆升。

(結尾高能,一定要看到最後!)

美國失業人數突破2200萬!這個動態圖我用Python畫出來了!

美國每週首次申請失業救濟人數

來源:美國勞工部 United States Department of Labor

那麼作為一個技術號,我們就來探討一下這個動態圖怎麼做。 今天我們就教你用Python來實現!

教你用Python繪製

美國申請失業險人數動態圖

我們使用pyecharts包進行美國申請失業保險人數的動態趨勢圖的繪製,如果你沒有安裝pyecharts,可以使用以下代碼進行pip安裝。

pip install pyecharts

製作這樣的一個動態圖使用的是Pyecharts中的的TimeLine(時間線輪播圖)的類。使用TimeLine的方法,你可以輕鬆地將繪製帶有時間序列的動態圖形,比如動態條形圖、動態餅圖、動態桑基圖、動態地圖等等。

首先需要導入我們需要使用的包,其中pandas用於數據整理,pyecharts用於繪圖。

<code># 導入包
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Timeline, Line
/<code>

首先使用pandas讀入數據,我們選取的數據來自於美國勞工部官方網站,數據包含了從1967年07月01日~2020年04月04日的申請失業保險人數,這是一份帶有時間序列的面板數據,適合進行動態可視化繪圖使用。

<code># 讀入數據
df = pd.read_excel('USA_UI_1967_2020.xlsx')
df.head()
/<code>
美國失業人數突破2200萬!這個動態圖我用Python畫出來了!

在繪圖之前,首先我們需要梳理一下生成動圖的邏輯和思路。

我們將繪圖數據分為維度和度量來思考,在這個條形圖的繪製中,時間就是維度,S.A.(申請失業保險人數)就是度量值,繪製動態折線圖就是把每天的數據製作成一張截止到當天的折線圖然後輪動,下面使用Pandas對時間數據進行簡單的處理,並選取2000年以後的數據進行圖形的繪製,處理後的數據如下所示:

<code># 時間處理
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()
/<code>
美國失業人數突破2200萬!這個動態圖我用Python畫出來了!

接下來使用Pyecharts庫中的TimeLine和Line類進行圖形的繪製,代碼說明如下,其中的配置項可以看到pyecharts官網 https://pyecharts.org 進行查看。

圖形生成在本地的html網頁中。

代碼實現:

<code># 實例化一個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') /<code>


分享到:


相關文章: