【Matplotlib】リアルタイムグラフの速さ(更新間隔)

この記事では、Python向けグラフ描画ライブラリ「Matplotlib」を用いて、対話モードでリアルタイム変化するグラフを作る方法を紹介します。

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

前回記事では、Python + Matplotlibでリアルタイム変化するグラフを作成する方法を紹介しました。

前回記事
参考 【Matplotlib】リアルタイムグラフ

今回は、変化する時間間隔を変更する方法を紹介します。

時間間隔を変えるにはpause()を使います。
これをグラフ描画処理の間に入れることで、グラフが変化する速さを調整できます。

ソースコード

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

# -*- 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()

実行結果

サンプルプログラムの実行結果は下記の通りです。

約0.3秒毎ににプロットする点が動きました。

関連ページ
1 Matplotlib入門 サンプルプログラム集
関連記事