目次
bar chart race
前回、matplotlibでffmpegを使ってアニメーショングラフを作成する方法を紹介しました。
【matplotlib】ffmpegを使ってアニメーショングラフを作成する方法[Python]
matplotlib 前回、matplotlibでplt.clf()とplt.cla()、plt.close()の違いを紹介しました。 今回はmatplotlibでffmpegを使ってアニメーショングラフを作成する方法を紹介…
今回はbar_chart_raceライブラリを使って、順位が入れ替わる棒グラフアニメーション、いわゆるバーチャートレースを作成する方法を紹介します。
それでは始めていきましょう。
bar_chart_raceライブラリのインストール
まずはbar_chart_raceライブラリをインストールします。
インストールはいつも通りpipで行います。
pip install bar_chart_race
データの準備
次にバーチャートレースを作成するためのデータを準備します。
データは列が各項目、行が時系列のデータとなるようにします。
ということでこんな感じに準備してみました。
import pandas as pd
import random
countries = ["Japan", "US", "France", "Germany", "UK", "China", "Australia"]
startvalues = [120, 250, 50, 20, 60, 300, 150]
cycle = 100
df = pd.DataFrame()
for country, startval in zip(countries, startvalues):
val_list = [startval]
times = random.randint(1, 5)
for _ in range(cycle):
val_list.append(times*random.randint(0, 10)+val_list[-1])
df[country] = val_list
print(df)
実行結果
Japan US France Germany UK China Australia
0 120 250 50 20 60 300 150
1 126 252 71 36 68 340 156
2 136 260 71 54 68 390 156
3 144 276 74 64 108 430 162
4 152 288 101 78 108 450 180
.. ... ... ... ... ... ... ...
96 602 1188 1364 916 2104 3115 1758
97 604 1196 1388 922 2128 3160 1788
98 605 1200 1394 928 2140 3160 1812
99 613 1208 1397 932 2164 3205 1815
100 614 1220 1400 946 2164 3230 1842
[101 rows x 7 columns]
列が国の名前で最初の行が初期値、そしてその後はランダムに数値を足していくというデータにしてみました。
バーチャートレースを作成
それではバーチャートレースを作成してみましょう。
ちなにみバーチャートレースでデフォルトでアニメーションを作成する場合、内部でmatplotlibからffmpegが使われますので、ffmpegを事前にインストールして、matplotlibに連携しておいてください。
方法は前回説明していますので、よかったらこちらの記事をご覧ください。
【matplotlib】ffmpegを使ってアニメーショングラフを作成する方法[Python]
matplotlib 前回、matplotlibでplt.clf()とplt.cla()、plt.close()の違いを紹介しました。 今回はmatplotlibでffmpegを使ってアニメーショングラフを作成する方法を紹介…
バーチャーレースを作成するには「bar_chart_raceのbcr」をインポートして、「bcr.bar_chart_race(df=データフレーム, filename=’ファイル名.mp4′)」で作成できます。
import bar_chart_race as bcr
import pandas as pd
import random
countries = ["Japan", "US", "France", "Germany", "UK", "China", "Australia"]
startvalues = [120, 250, 50, 20, 60, 300, 150]
cycle = 100
df = pd.DataFrame()
for country, startval in zip(countries, startvalues):
val_list = [startval]
times = random.randint(1, 5)
for _ in range(cycle):
val_list.append(times*random.randint(0, 10)+val_list[-1])
df[country] = val_list
bcr.bar_chart_race(df=df, filename='python-matplotlib55-1.mp4')
たったあれだけのコマンドでバーチャートレースが作成できました。
経時的な変化を見るにはなかなかいい手法だと思いますので、よかったら使ってみてください。
次回はバーチャートレースのオプションを見ていきましょう。
【matplotlib】bar_chart_raceのオプションを色々いじってみる[Python]
bar chart race 前回、bar_chart_raceライブラリで順位が入れ替わる棒グラフアニメーションを作成する方法を紹介しました。 今回はbar chart raceのオプションを色々と…
ではでは今回はこんな感じで。
コメント