Pythonでは、さまざまな方法で図形を動かすアニメーションを作成することができます。
本記事では、Google Colab上で実行可能な方法に絞って、図形を動かすための基本的な実装と考え方を丁寧に紹介します。
目次
なぜColabではGUIが使えないのか?
Pythonでアニメーションを作る際に一般的なツールとしては以下があります。
Tkinter
:Python標準のGUIツール(ウィンドウ表示)Pygame
:ゲーム開発向けのアニメーションツール(ゲームウィンドウ)matplotlib.animation
:データ可視化や簡易アニメーション向け
しかし、Google Colabはクラウド上で動作するノートブック環境のため、Tkinter
やPygame
のようにローカルGUIを必要とするツールは使えません。
その代わりに、HTMLベースでアニメーションを表示できるmatplotlib.animation
が最も相性が良く、Colab上でも簡単に動かすことができます。
実践:Matplotlibで図形を動かすアニメーションを作ろう
ここでは、matplotlib
のFuncAnimation
を使って、赤い点が左右に動きながら上下に揺れるアニメーションを作ってみましょう。
Colab完全対応コード
以下のコードをColabにコピーして、1つのセルで実行してください。
# ライブラリの読み込み
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np
# グラフの準備
fig, ax = plt.subplots()
ax.set_xlim(0, 10)
ax.set_ylim(0, 10)
# 点の準備(赤い円)
point, = ax.plot([], [], 'ro', markersize=10)
# 初期化関数(描画前に呼び出される)
def init():
point.set_data([], [])
return point,
# フレームごとの更新関数
def update(frame):
x = frame / 10
y = np.sin(x) + 5 # 上下に揺れる動き
# 修正: xをリストに変換
point.set_data([x], [y]) # x and y should be sequences
return point,
# アニメーションの生成(blit=Trueで高速化)
ani = animation.FuncAnimation(
fig, update, frames=np.arange(0, 100),
init_func=init, blit=True, interval=50
)
# Google Colabで表示
from IPython.display import HTML
HTML(ani.to_jshtml())
実行結果
実行すると、赤い点が画面の左から右へ移動しながら上下にスイングするアニメーションが表示されます。
コードのポイント解説
要素 | 説明 |
---|---|
plot([], [], 'ro') | 最初は空の点を描画。赤い円(’ro’)として表示 |
update(frame) | frame に応じてxとyの座標を毎回更新 |
ani.to_jshtml() | Colab上でHTMLアニメーションとして出力 |
この仕組みを応用すれば、折れ線グラフ・散布図・棒グラフのアニメーションなども作成可能です。
注意点とよくあるトラブル
HTML表示されないときの対処法
- セルの実行が完了するまで待つ(HTMLアニメーション生成に時間がかかることがあります)
ani.to_jshtml()
が入っているセルは必ず単独で実行するようにしましょう
エラーメッセージが出る場合
matplotlib
が未インストールの場合は、以下のようにセルの最初に追加してから再実行してみてください。
!pip install matplotlib
まとめ

Google ColabでもPythonを使って簡単に図形を動かすアニメーションが作れます。
Tkinter
やPygame
が使えない制約はありますが、matplotlib.animation
を使えば、教育・研究・プレゼン用途でも十分活用可能です。
以上、Pythonで図形を動かす方法についてでした。
最後までお読みいただき、ありがとうございました。