2016-05-30 2 views
0

私はしばしば、ビデオシーケンスを処理するときにさまざまなプロットや画像をプロットする実験スクリプトを実行します。その結果、進行状況を監視/デバッグできます。時にはプロットを表示しないで、ビデオをより速く処理したいと思うことがあります。私は自分のコードにスイッチを追加するだけでよいのですが、私のコードはそれぞれの実験で変わります。ですから、matplotlibには、すべてのプロットコマンドを無視して、すべてのプロットをオフにする、グローバルなスイッチをオフにする何らかの形があります。これは、画面にプロットされませんMatplotlib:プロットのためのグローバル "スイッチオフ"?

import matplotlib as mpl 
if 'Agg' in os.environ: 
    print("Not plotting!") 
    mpl.use('Agg') 
    import matplotlib.pyplot as plt 
    plt.ioff() 
else: 
    import matplotlib.pyplot as plt 
    plt.ion() 

が、それはまだ私が避けたいものであるプロット関数に時間を費やしています:

私は私のスクリプトの先頭にこれを追加しようとしました。

答えて

0

Thisは対話モードをオフにすると、トリックを行う必要があることを示唆している:

pyplot・インターフェース・コントロールのインタラクティブプロパティ フィギュア・キャンバスは、すべてのpyplotコマンドに描かれているかどうか。 interactiveが Falseの場合、図の状態はすべてのplotコマンドで更新されますが、 はdraw()の明示的な呼び出しでのみ描画されます。 interactiveが Trueの場合、すべてのpyplotコマンドが描画をトリガーします。

interactive(False)を試してみてください:[OK]を、感謝

+0

import matplotlib.pyplot as plt plt.interactive(False) 

また.draw.plot機能をモンキーパッチができます。これはうまくいくはずですが、私は通常対話モードで作業し、視覚化関数は最後にplt.draw()を持っているので、インタラクティブがFalseならイベントを再描画します。自分のグローバルスイッチを追加すれば、おそらくもっと簡単だと思います。しかし、私はあなたの答えを受け入れるでしょう。 – martinako

+0

明示的に 'plt.draw()'を呼び出すべきではありません。インタラクティブモードのmpl 1.5+では、必要に応じて自動的に再描画し、Figureを保存すると常に完全な再描画が開始されます。 – tacaswell

+0

また、ドキュメントページは非常に古くなっています:( – tacaswell

関連する問題