はじめに
matplotlib を用いてグラフをリアルタイムで動かしてみる。
目次
環境
リアルタイムグラフではplt.draw()もplt.show()も上手く描写出来ない
matplotlibを使用してグラフを描写するときはだいたいplt.draw()とか
plt.show()とかを使うけど、リアルタイムで動かしたいときは上手く描写できない。
plt.show()は一枚ごとグラフが表示される。
plt.draw()は描画がはじまらない。
リアルタイムではplt.pause(time)を用いるといい。
plt.pause()の引数は描画間隔。秒単位。
コード
コードは以下の通り。今回はランダムでデータを生成。
import numpy as np
from matplotlib import pyplot as plt
import random
plt.figure()
#x軸の幅を100にする
xlim = [0, 100]
X, Y = [], []
while True:
#画面をクリア
plt.cla()
Y.append(random.random())
X.append(len(Y))
#xに100個以上格納されたら
if len(X) > 100:
xlim[0] += 1
xlim[1] += 1
plt.plot(X, Y)
#x軸、y軸方向の表示範囲を設定
plt.ylim(-1, 2)
plt.xlim(xlim[0], xlim[1])
#描写
plt.pause(0.1)
結果
ちゃんとx軸が一定で動いている。
