2016-06-23 4 views
0

私は、いくつかの点を強調表示したデータセット(コンピュータ測定値)をプロットし、それらのポイントに関するユーザ入力を求める関数を持っていますポイント)を使用してデバイスをキャリブレーションします。関数の最後の前にmatplotlibをプロットする方法

これは正常に動作するために使用されました。ただし、何も変更せずに、プロットは関数の最後まで表示されません。私のコードの例を次に示します(私はjupyterノートブックで動作しています)。

plot_peaksは、データを取り込み、ピークが強調表示されたデータのプロットを返します。

ユーザは、理論値を入力できるようにピークが何であるかを見るためにプロットが必要です。しかし、プロットはまで表示されます。すべてのデータポイントのがユーザーによって入力されています。

私が使用している場合:

%matplotlib inline 

ユーザーが何かを入力する前に、その後のプロットが表示されます。しかし、私はインラインでプロットすることはできません。

私が試したもの:

  • をplot_peaksの内部ion()を使用して(何も変更されません)
  • plt.show(block=False) plot_peaksの内部(何も変更されません)
  • func()の内部に別のplt.show()(空白をポップアップ表示を追加しますウィンドウが終了すると、目的のプロットが新しいウィンドウに表示されます)
  • バックエンドの変更

答えて

1

私はそれが価値があることについて、(試行錯誤の後で)私の特定の問題に対する答えを見つけました。

私が必要としたのは、続行する前に長い時間ポーズをとる描画を描画する関数でした。なぜか分からないのですが、多分Pythonが次のコマンドの実行を開始する前にプロットが終了していないことが関係しています。なぜ誰かがそれが知って良いことを知っていれば。

私が行ったのは、plot_peaks()メソッドの最後にplt.pause(1)を追加したことでした。これは、関数の次の部分が呼び出される前にグラフが完全に表示されることを意味します。

関連する問題