LoginSignup
8
9

More than 5 years have passed since last update.

python3でリアルタイムプロット

Posted at

はじめに

私は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()を入れることが重要だったみたいです。

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9