Python 学習:matplotlib.pyplot.ion

2015-08-26 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での blogramのランクインカテゴリは、
6、1、1、1、0、 0、0、0、0、0(41)で、換算ポイント 78pt 。
「Firefox」がアップ/ダウンしたが、結果4位にアップ。
「Perl」「化学業界」「グルコサミン」「Python」はbg値変動。
「C言語」「FM COCOLO」は全く変化無し。
・-・ - -・

さて、本文。

matplotlibでグラフを表示するとき、

  matplotlib.pyplot.show()

とすると、
そこで、処理が止まってしまう。

なので、・・・・・
「Python matplotlib graph リアルタイム」で検索してみた。


「lolloo-htnの日記」の 2011-12-29 の記事:
matplotlib のnon-blocking な描画方法で・・・
   matplotlib の show() は blocking な関数だが、
  matplotlib.pyplot.ion() でインタラクティブモードに入ると、
  non blocking に振舞う。
  描画データを変更して、draw() コマンドを実行することで、
  動的にグラフを変更することができる (matplotlib ・・・)。
  動的に生成されるデータのグラフをリアルタイムに作成する
  場合に必要なテクニックである。
  ・・・・・
  ・・・・・

これでいいのかな?

でも、良く読んでみると、・・・・・

  基本的には、
   ・・・・・
   ・・・・・
  をすればよいが、何も考えずにやると、
  Axis を container とするオブジェクトの数がどんどん増えるので、注意。
  あと、フォーカスを変えたり、GUI の画面をクリックしたりすると、
  なぜか GUI の画面が FREEZE するような動きをする。
  Web 上には似たような事例があって、 backend を Gtk にするといいよ、
  などかかれていたが、・・・・・

些か心配だが、
簡単に出来そうですね。


でも、
何度か参照させて頂いている「Qiita」さんの、
2015/08/04 記事:「matplotlibでリアルタイム描画
  ・・・・・
  ・・・・・
  だけど,show()を呼ぶとプログラムがそこでブロックされて
  リアルタイムな描画ができない.
   調べてみるとshow()ではなくてdraw()を使おう!みたいな記事とか,
  Tkinter(tkinter)とかQtとかのGUIライブラリと組み合わせた方法とか
  がでてくるんだけど,
  Windows環境だとグラフに一度でも触るとGUIが固まったりして
  とてもじゃないけど使えなかったりした.
  (たしかMacとかのUnix環境だったら使えたような気がする.)

  pause()を使おう!!!

  例の如くstackoverflowにそれ関係のやりとりがあった.
  参考: real-time plotting in while loop with matplotlib

  結論はplt.show()の代わりにplt.pause(interval)を使うということ.
  ・・・・・
  ・・・・・

こっちの方がベターかな?
「stackoverflow」に載っている方法!


本日はここまで。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


150311,0822
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
03 | 2017/04 | 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク