【Python】Plotly Expressで簡単なデータ アニメーションを作成する

今回は、pandas-datareaderを使って取得したデータを使って、Plotlyのアニメーション機能を試してみます。

データ取得

主要国の米ドル建てGDPデータを世界銀行から取得、
取得したデータは、インデックスのリセットとソートを行います。

※ソートしておかないと、plotly expressでアニメーション・グラフにしたときにぐちゃぐちゃになる。

(データ取得に関心のある方はこちらもぜひお読みください)

from pandas_datareader import wb
import pandas as pd
import plotly.express as px

country = ['USA','JPN','GBR','AUS','NZL','CAN','CHE','THA','ZAF','NOR',
           'HKG','SGP','DNK','SWE','MEX','TUR','CHN','BRA','EU','XC']

df = wb.download(indicator='NY.GDP.MKTP.CD',country=country,start=1960,end=2019)
df.reset_index(inplace=True)
df.sort_values(['country','year'],inplace=True)

アニメーション・グラフの作成

上で取得したデータを使ってグラフを作成する。

作り方は、

  • 下記のようにX軸とY軸に用いるデータを指定
  • animation_frameに時系列を指定(今回の場合)

これだけなので非常に簡単。
今回はY軸の範囲指定とレイアウト変更も追加した。

fig = px.bar(df,x='country',y='NY.GDP.MKTP.CD',animation_frame='year',
       range_y=(0,25000000000000))

fig.update_layout(xaxis=dict(title=None),yaxis=dict(title=None),title=dict(text="Major Countries' GDP"))

出力結果

そこまで面白い内容ではないかもしれませんが、簡単にこのような動くアニメーション・グラフを作成することができました。

こうして動かしてみると、通常のグラフをみるときと若干印象が変わってくることもあると思われます。
(日本がいかに成長していないかがよくわかるなど)