はじめに
タイトルの通りなんやけど、センサデータを、キューというかFIFOみたいなのにためてグラフ表示するやつ、横にグラフが流れていくようなやつを作った。調べても、なかなか見つからなかったので、試行錯誤してみた。Jupyterやったから、なかったんかな。
環境
Jupyter 4.4.0
Python 2.7.13
あと、あんま関係ないと思うけど、ChromeOSのCrostiniでやった。
コード
こんな感じ。ランダムなデータを毎回生成してキューに追加して、それを表示する。dequeってクラス?を作るのと、表示するときのおまじない系関数がポイントなんかな。
%matplotlib inline
# Queue
from random import randint
from collections import deque
#Plot
import matplotlib.pyplot as plt
from IPython.display import display, clear_output
# Queue
num = 10
queue = deque([0]*10)
# Plot
plt.ion()
fig = plt.figure()
for i in range(num):
# Queue
queue.popleft()
queue.append(np.random.rand(1))
# Plot
clear_output(wait = True)
plt.cla()
plt.plot(range(i-9,i+1),queue)
plt.grid()
plt.ylim(0,1)
display(fig)

おわりに
PythonもmatplotlibもJupyterもたまに、なんとなく使う程度なので、いまいちわかってなくてそこそこ時間かかった。MATLABを普段使ってるので、それとの違いをまとめたのん探してみよかな。
参考
キュー
5. データ構造 — Python 3.6.5 ドキュメント
リスト初期化
List of zeros in python – Stack Overflow
クリア
Jupyter Notebook上でHTMLコードを使ってカウントダウンを表示する – Takala’s Memory
グラフ
matplotlibでのプロットの基本 – Qiita
matplotlibの描画の基本 | OpenBook
matplotlib によるデータ可視化の方法 (1) – Qiita
IPython
非エンジニアでも使いやすい高機能なPython環境「IPython」「Jupyter」を使ってみよう | さくらのナレッジ