如何在pylab.show()之后告诉Python结束?

时间:2012-09-17 21:21:32

标签: python plot matplotlib

我使用Pylab在Python中生成了一个绘图:

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

但是现在脚本在完成时似乎会阻塞。当我用 CTRL + C 打破它时,脚本结束,关闭绘图窗口。我怎么能告诉Python不要阻止?

3 个答案:

答案 0 :(得分: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()

答案 1 :(得分:1)

你应该使用plt.ion()(打开交互模式) 以后plt.draw()如果需要的话。 plt是matplotlib.pyplot(我认为通过pylab也可以看到。*)

答案 2 :(得分:0)

我同意sega_sai的回答。然而,(至少我所看到的是)有时候在显示情节之后,它会进入“无响应”模式,你只需要杀死这个过程。最好的选择(如果你已经安装了IPython)是使用“--pylab”选项(“ipython --pylab”)启动IPython。 [请注意我的经验是在Windows 7机器上。]