Matplotlibでデータファイルの変更に合わせてグラフを動的に更新する方法
データファイルの変更に応じてMatplotlibの図(グラフ)をリアルタイムに更新したい場合、plt.pause() を活用することで、描画を繰り返しながら動的な更新を実現できます。以下の手順で実装できます。
実装の手順
- figureサイズを設定し、サブプロット間および周囲の余白(パディング)を自動調整します。
- サブプロットの行数・列数を決めるため、変数 m と n を初期化します。
- プロットごとに色を動的に変えられるよう、ランダムなカラーコードのリストを作成します。
- plot() メソッドを使って、ランダムなデータポイントを動的にプロットします。
- 最後に show() メソッドで図を表示します。
コード例
import numpy as np
import matplotlib.pyplot as plt
import random
# 図のサイズとレイアウトの自動調整を設定
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
m = 2 # 行数
n = 4 # 列数
fig, axes = plt.subplots(nrows=m, ncols=n)
# ランダムな16進数カラーコードを生成
hexadecimal_alphabets = '0123456789ABCDEF'
color = ["#" + ''.join([random.choice(hexadecimal_alphabets)
for j in range(6)]) for i in range(m*n)]
for i in range(m):
for j in range(n):
axes[i][j].clear()
axes[i][j].plot(np.random.rand(10), np.random.rand(10),
color=color[100 % np.random.randint(1, len(color))])
# 一時停止することで描画を更新
plt.pause(0.1)
plt.show()
ポイント解説
このコードの鍵となるのは plt.pause(0.1) の部分です。このメソッドは指定した秒数だけ処理を一時停止すると同時に、GUIイベントループを回して画面を再描画します。これにより、ループ内でデータが更新されるたびにグラフが順次書き換えられ、簡易的なアニメーションのような動的表示が可能になります。
また、各サブプロットに対して clear() を呼び出すことで、前回の描画内容を消去してから新しいデータをプロットしています。実際のデータファイルを監視する場合は、このループ内でファイルを読み込み直し、新しい値で plot() を実行すれば、ファイルの変化に追従したリアルタイムな可視化が実現できます。
出力結果

-
Matplotlibでデータ座標を使って図の外側に注釈を配置する方法
Matplotlibでは、annotate()メソッドを活用することで、プロット領域(描画範囲)の外側に注釈(アノテーション)を自由に配置できます。グラフのタイトルや説明を目立つ位置に表示したい場合に非常に便利なテクニックです。実装手順figureサイズを設定し、サブプロット間および周囲のパディングを調整します。NumPyを使用してxとyのデータポイントを作成します。subplots()メソッドを使って、figureとサブプロットのセットを作成します。scatter()メソッドで星形マーカーとcopperカラーマップを使用して、xとyのデータポイントをプロットします。注釈を描画範囲の外側に配置
-
Matplotlibのsubplot関数を使ってPythonで2つのグラフを作成する方法
Matplotlibとは Matplotlibは、Pythonで最も広く使われているデータ可視化ライブラリのひとつです。 データの可視化は分析において非常に重要なステップです。数値を一つひとつ確認したり複雑な計算を実行したりしなくても、データ全体の傾向や特徴を直感的に把握できるようになるからです。また、定量的な洞察を相手に効果的に伝える手段としても優れています。 Matplotlibは2次元のグラフ(プロット)を作成するために使用され、オブジェクト指向APIを備えているため、Pythonアプリケーションへのグラフ埋め込みも簡単に行えます。IPythonシェル、Jupyter Notebook、