#はじめに
私はpython触り始めて数ヶ月のペーペーです。なのでその書き方おかしいだろ!みたいなとこも多々あると思いますが、よろしくお願い申し上げます。
とりあえず、備忘録代わりに躓いたところを書きます。
#環境
python 3.6.2
matplotlib 2.1.0
#躓いたとこ
ラズパイにセンサーつけてリアルタイムにグラフ見ようと思ったのがきっかけです。
色々と参考にしてとりあえずion()
とかdrow()
でインタラクティブモードにしたら出来るんだなと思い
サンプルを動かすもmatplotlibが固まる・・
#解決策
参考にしたところを忘れてしまった。。
とりあえずサンプルを。。
realtimeplottest.py
# -*- coding: utf-8 -*-
from matplotlib import pyplot as plt
import math
times = [0 for i in range(100)]
sinxs = [0 for i in range(100)]
time = 0
sinx = 0
# initialize matplotlib
plt.ion()
plt.figure()
li, = plt.plot(times, sinxs)
plt.ylim(-1,1)
plt.xlabel("time")
plt.ylabel("sin")
plt.title("sin real time plot")
while 1 :
time += 0.1
sinx = math.sin(time)
times.append(time)
times.pop(0)
sinxs.append(sinx)
sinxs.pop(0)
li.set_xdata(times)
li.set_ydata(sinxs)
plt.xlim(min(times), max(times))
plt.draw()
plt.pause(0.01)
最後のplt.pause()
を入れることが重要だったみたいです。