【Matplotlib】リアルタイムグラフ(realtime plot)

Pythonモジュール「Matplotlib」を用いて、対話モードでリアルタイム変化するグラフを作る方法を紹介します。

対話モード(インタラクティブモード)

Pythonモジュール「Matplotlib」でリアルタイム変化するグラフを作成するには対話モード(インタラクティブモード)を使う必要があります。
今回は、これを試してみました。

ソースコード

サンプルプログラムのソースコードです。

# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt

def realtime_graph(x, y):
    line, = plt.plot(x, y, "ro",label="y=x") # (x,y)のプロット
    line.set_ydata(y)   # y値を更新
    plt.title("Graph")  # グラフタイトル
    plt.xlabel("x")     # x軸ラベル
    plt.ylabel("y")     # y軸ラベル
    plt.legend()        # 凡例表示
    plt.grid()          # グリッド表示
    plt.xlim([0,10])    # x軸範囲
    plt.ylim([0,10])    # y軸範囲
    plt.draw()          # グラフの描画
    plt.pause(0.01)
    plt.clf()           # 画面初期化


def main():
    (x, y) = (0, 0)     # 初期値
    plt.ion()           # 対話モードオン

    while( y != 10 ):
        realtime_graph(x, y)
        x += 1
        y = x

    plt.close() # 画面を閉じる


if __name__ == '__main__':
    main()

実行結果

サンプルプログラムの実行結果です。

おすすめ関連記事
1 Matplotlib入門 サンプルプログラム集
関連記事