リアルタイムmatplotlib
の編集
Top
/
リアルタイムmatplotlib
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
島部/menu/template
[[横井]] -&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]
タイムスタンプを変更しない
[[横井]] -&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]
テキスト整形のルールを表示する