1

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

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

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

4

3 回答 3

1

如果需要,您应该使用plt.ion()(打开交互模式)和更高版本plt.draw()。plt 是 matplotlib.pyplot (我认为通过 pylab 也可以看到。*)

于 2012-09-17T22:13:18.913 回答
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 回答
0

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

于 2012-09-17T22:29:58.680 回答