#author("2018-05-30T18:32:41+09:00","","")
#author("2018-05-30T18:32:51+09:00","","")
[[横井]]
-&color(red,){&size(20){様々なやり方があり、一番時間のかからないものを検証中};};&size(20){様々なやり方があり、一番時間のかからないものを検証中};
-&color(red,){&size(20){様々なやり方があり、一番時間のかからないものを検証中};};
-今回は、pythonのMatplotlibの簡単な説明とリアルタイム描画する方法を書く。
-pythonおよびmatplotlibをインストールしてある前提
#contents
*普通の描画 [#ma182385]
-[[このサイトがわかりやすい:http://bicycle1885.hatenablog.com/entry/2014/02/14/023734]]
-自分の環境では問題なく動作した
*リアルタイム描画(1) [#qfdbe679]
 # -*- coding: utf-8 -*-
 """
 matplotlibでリアルタイムプロットする例無限にsin関数をplotし続ける
 """
 from __future__ import unicode_literals, print_function
 import numpy as np
 import matplotlib.pyplot as plt
 def pause_plot():
     fig, ax = plt.subplots(1, 1)
     x = np.arange(-np.pi, np.pi, 0.1)
     y = np.sin(x)
     # 初期化的に一度plotしなければならない
     # そのときplotしたオブジェクトを受け取る受け取る必要がある.
     # listが返ってくるので,注意
     lines, = ax.plot(x, y)
     # ここから無限にplotする
     while True:
         # plotデータの更新
         x += 0.1
         y = np.sin(x)
         # 描画データを更新するときにplot関数を使うと
         # lineオブジェクトが都度増えてしまうので,注意.
         #
         # 一番楽なのは上記で受け取ったlinesに対して
         # set_data()メソッドで描画データを更新する方法.
         lines.set_data(x, y)
         # set_data()を使うと軸とかは自動設定されないっぽいので,
         # 今回の例だとあっという間にsinカーブが描画範囲からいなくなる.
         # そのためx軸の範囲は適宜修正してやる必要がある.
         ax.set_xlim((x.min(), x.max()))
         # 一番のポイント
         # - plt.show() ブロッキングされてリアルタイムに描写できない
         # - plt.ion() + plt.draw() グラフウインドウが固まってプログラムが止まるから使えない
         # ----> plt.pause(interval) これを使う!!! 引数はsleep時間
         plt.pause(.01)
 if __name__ == "__main__":
     pause_plot()
*リアルタイム描画(2) [#ia203839]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS