はじめに
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軸が一定で動いている。