1

Pylab を使用して Python でプロットを生成しました。

pylab.plot(x, y)
pylab.show()

しかし、スクリプトが完了するとブロックされているように見えます。CTRL+でブレークするとC、スクリプトが終了し、プロット ウィンドウが閉じます。ブロックしないようにPythonに指示するにはどうすればよいですか?

4

3 に答える 3

1

プログラムを(ブロックせずに、ターミナルに制御を戻すことなく)終了し、それでもプロットウィンドウを開いたままにしますか?

その場合、および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()
于 2012-09-17T21:51:56.857 に答える
1

plt.ion()必要に応じて、(インタラクティブモードをオンにする)以降を使用plt.draw()する必要があります。pltはmatplotlib.pyplotです(これはpylabからも表示できると思います。*)

于 2012-09-17T22:13:18.913 に答える
0

sega_saiの答えに同意します。ただし、(少なくとも私が見たのは)プロットが表示された後、「応答なし」モードになり、とにかくプロセスを強制終了する必要がある場合があります。最良のオプション(IPythonをインストールしている場合)は、「-pylab」オプション(「ipython--pylab」)を使用してIPythonを起動することです。[私の経験はWindows7マシンであることに注意してください。]

于 2012-09-17T22:29:58.680 に答える