目次
1. はじめに
データの変化を視覚的に伝える方法として、レースチャート(動く棒グラフ) は非常に有効です。例えば、
- 都道府県別の人口推移
- 企業の売上ランキングの推移
- スポーツチームの成績変動
など、時系列データをアニメーションで見せることで、視覚的にわかりやすくなります。
Pythonのbar_chart_raceライブラリを使うと、簡単にこのような動くグラフを作成できます。本記事では、初心者でも簡単に試せる方法を詳しく解説していきます。
2. bar_chart_raceとは?
bar_chart_race
は、Pandasのデータフレームを基にアニメーションを生成するライブラリです。通常のmatplotlib
やseaborn
では静止グラフしか作れませんが、bar_chart_race
を使うと、データの推移を動的に表現できます。
なぜbar_chart_raceを使うのか?
- データの動きを直感的に理解できる
- 簡単なコードでアニメーションを作成できる
- 動画ファイル(MP4、GIF)として保存できる
それでは、実際に試してみましょう。
3. bar_chart_raceのインストール
まず、ライブラリをインストールします。
pip install bar_chart_race pandas matplotlib
4. 動くグラフを作ってみよう
4.1 データの準備
まずは、サンプルデータを作成します。
import pandas as pd
import numpy as np
# サンプルデータの作成
np.random.seed(42)
dates = pd.date_range("2020-01-01", periods=10, freq="Y")
categories = ["A社", "B社", "C社", "D社", "E社"]
data = pd.DataFrame(
np.random.randint(100, 1000, size=(10, len(categories))),
index=dates,
columns=categories,
)
print(data)
A社 B社 C社 D社 E社
2020-12-31 202 535 960 370 206
2021-12-31 171 800 120 714 221
2022-12-31 566 314 430 558 187
2023-12-31 472 199 971 763 230
2024-12-31 761 408 869 443 591
2025-12-31 513 905 485 291 376
2026-12-31 260 559 413 121 352
2027-12-31 847 956 660 574 158
2028-12-31 610 781 575 799 882
2029-12-31 289 786 662 975 666
このデータは、企業A社〜E社の売上推移(年ごと)を模したものです。
4.2 bar_chart_raceを使ってアニメーション作成
次に、bar_chart_race
を使ってレースチャートを作成します。
import bar_chart_race as bcr
bcr.bar_chart_race(
df=data,
filename="race_chart.mp4", # 出力ファイル名
title="企業売上ランキング(サンプルデータ)",
period_label={'x': 0.95, 'y': 0.15}, # 年の表示位置
figsize=(6, 3.5),
dpi=144
)
このコードを実行すると、race_chart.mp4
という動画ファイルが生成されます
5. パラメータの解説
作成したグラフをカスタマイズするために、以下のパラメータを調整できます。
パラメータ | 説明 |
---|---|
filename | 出力する動画のファイル名(MP4やGIFも可) |
title | グラフのタイトル |
period_label | 日付(年)のラベル位置(x, y) |
figsize | グラフのサイズ(横, 縦) |
dpi | 解像度(数値を大きくすると高品質) |
例えば、GIFとして保存する場合は、
bcr.bar_chart_race(
df=data,
filename="race_chart.gif", # GIFで保存
title="企業売上ランキング(サンプルデータ)"
)
とすればOKです。
6. 応用編
6.1 APIでデータを取得しリアルタイム可視化
例えば、株価データや天気データをリアルタイムに取得し、レースチャートで可視化することも可能です。
6.2 見やすくするためのカスタマイズ
- カラーパレットを変更する
- フォントを日本語対応にする
- ラベルのフォーマットを変更する
bcr.bar_chart_race(
df=data,
filename="custom_chart.mp4",
title="企業売上ランキング(カスタマイズ版)",
period_label={'x': 0.9, 'y': 0.2},
figsize=(8, 5),
dpi=200,
bar_kwargs={'alpha': 0.7, 'edgecolor': 'black'}
)
7. まとめ
bar_chart_race
を使えば、簡単に動く棒グラフ(レースチャート)が作れる- データの変化を直感的に伝えるのに便利
- MP4やGIFで保存でき、プレゼン資料やSNSにも活用可能
ぜひ、自分のデータで試してみてください!