Pylab を使用して Python でプロットを生成しました。
pylab.plot(x, y)
pylab.show()
しかし、スクリプトが完了するとブロックされているように見えます。CTRL+でブレークするとC、スクリプトが終了し、プロット ウィンドウが閉じます。ブロックしないようにPythonに指示するにはどうすればよいですか?
Pylab を使用して Python でプロットを生成しました。
pylab.plot(x, y)
pylab.show()
しかし、スクリプトが完了するとブロックされているように見えます。CTRL+でブレークするとC、スクリプトが終了し、プロット ウィンドウが閉じます。ブロックしないようにPythonに指示するにはどうすればよいですか?
プログラムを(ブロックせずに、ターミナルに制御を戻すことなく)終了し、それでもプロットウィンドウを開いたままにしますか?
その場合、およびunixを使用している場合は、サブプロセスをフォークし、os.setsidを使用して、サブプロセスをセッションリーダーとして新しいセッションを作成できます。
import matplotlib.pyplot as plt
import numpy as np
import os
pi = np.pi
arctan = np.arctan
if os.fork():
# Parent
pass
else:
# Child
os.setsid()
x = np.linspace(-10,10,100)
plt.plot(x,arctan(x))
plt.show()
plt.ion()
必要に応じて、(インタラクティブモードをオンにする)以降を使用plt.draw()
する必要があります。pltはmatplotlib.pyplotです(これはpylabからも表示できると思います。*)
sega_saiの答えに同意します。ただし、(少なくとも私が見たのは)プロットが表示された後、「応答なし」モードになり、とにかくプロセスを強制終了する必要がある場合があります。最良のオプション(IPythonをインストールしている場合)は、「-pylab」オプション(「ipython--pylab」)を使用してIPythonを起動することです。[私の経験はWindows7マシンであることに注意してください。]