程序结束后保持 matplotlib 图形打开
Keeping matplotlib figures open after program ends
是否有可能 运行 Python 代码生成一个(或多个)图形并保持这些图形打开,即使在程序结束后也是如此?
目前,当我在代码末尾使用 show()
时,程序执行 $ python somecode.py
会停止,直到我关闭图形(或图形)。从而使终端无法使用。
我是否需要为每个图形分配不同的作业 ID,以便这些图形 运行ning 与主程序分开?如果是这样,我怎样才能做到这一点?
当一个人想要使用不同的输入执行有限次数的程序,并且不想将每个结果图形存储为(单独的)文件时,这种需求就变得很明显。这对于进行快速比较很方便。
一个明显的解决方案是 运行 程序在单独的终端会话中。
不确定这是否是您想要的,但您当然可以使用 &
.
在您的终端中将 python
作为后台进程启动
像这样:
$ python somecode.py &
$ ... # control is returned here immediately
它将在后台启动 python
并立即 return 控制终端。一段时间后,情节 window 将出现而不会阻塞终端。您可以通过这种方式触发 python
的多个实例,从而导致多个 plot windows 同时打开,同时保持终端可用。
请注意,您也可以在进程启动后将其移至后台。之后
$ python somecode.py
终端已被阻止,但您可以在终端中按 ctrl-z
,然后按 bg
将进程转为后台进程。
这当然是一般的 shell 功能,与 Python 无关。
要继续显示图像,python 必须仍然是 运行ning。如果 python 仍然是 运行ning,那么在标准用法中您将无法使用终端。
一般来说,对于这种类型的工作流程,您可能会使用 ipython,您可以在其中轻松 运行 所需的 program/code/script,然后继续使用交互式解释器。
替代解决方案包括:
- Moving the running process to the background
- Running the process in the background
- 运行 gnu screen.
中的进程
是否有可能 运行 Python 代码生成一个(或多个)图形并保持这些图形打开,即使在程序结束后也是如此?
目前,当我在代码末尾使用 show()
时,程序执行 $ python somecode.py
会停止,直到我关闭图形(或图形)。从而使终端无法使用。
我是否需要为每个图形分配不同的作业 ID,以便这些图形 运行ning 与主程序分开?如果是这样,我怎样才能做到这一点?
当一个人想要使用不同的输入执行有限次数的程序,并且不想将每个结果图形存储为(单独的)文件时,这种需求就变得很明显。这对于进行快速比较很方便。
一个明显的解决方案是 运行 程序在单独的终端会话中。
不确定这是否是您想要的,但您当然可以使用 &
.
python
作为后台进程启动
像这样:
$ python somecode.py &
$ ... # control is returned here immediately
它将在后台启动 python
并立即 return 控制终端。一段时间后,情节 window 将出现而不会阻塞终端。您可以通过这种方式触发 python
的多个实例,从而导致多个 plot windows 同时打开,同时保持终端可用。
请注意,您也可以在进程启动后将其移至后台。之后
$ python somecode.py
终端已被阻止,但您可以在终端中按 ctrl-z
,然后按 bg
将进程转为后台进程。
这当然是一般的 shell 功能,与 Python 无关。
要继续显示图像,python 必须仍然是 运行ning。如果 python 仍然是 运行ning,那么在标准用法中您将无法使用终端。
一般来说,对于这种类型的工作流程,您可能会使用 ipython,您可以在其中轻松 运行 所需的 program/code/script,然后继续使用交互式解释器。
替代解决方案包括:
- Moving the running process to the background
- Running the process in the background
- 运行 gnu screen.