同志、プロセス終了後にmatplotlibプロットを維持する方法
私はいくつかのmatplotlibプロットを生成して終了する関数を持っています。私はそれが終わった後にプロットを残しておきたい。
- インタラクティブモードをオンに設定すると、プロットは表示され、ブロックされず、機能が終了すると消えます。私はこれを望んでいない。
- インタラクティブモードをオフに設定すると、プロットが表示された後、閉じるまでブロックされ、関数が終了します。私はこれも望んでいない。
目的の動作は次のとおりです。プロットは表示され、ブロックされず、関数の終了後も残ります。
だから、これを行う方法はありますか?最も可能性の高いアプローチはマルチプロセッシングのようです。私はちょうど画像としての図を保存して開くことができます知っている
を
from multiprocessing import Process
import matplotlib.pyplot as plt
import numpy as np
def plot_graph():
plt.plot(np.random.randn(10))
plt.show()
p = Process(target=plot_graph)
p.start()
をしかし、それは(少なくとも、MacOSの、バックエンドTkAggに)何も表示されません:私は、次のコードが動作するだろうと思っているだろうこれは私の望むものではありません。私はまだmatplotlibズームコントロールなどを使用したいと思います。
'p.start()'の後に 'plt.show()'を移動してみてください。 – DavidG
どういう意味ですか?新しいプロセスでは、showは開始後に呼び出されます。 – Peter