【问题标题】:Plot a figure and exit but leave figure window open绘制图形并退出但保持图形窗口打开
【发布时间】:2014-11-03 09:19:19
【问题描述】:

我创建了一个绘制 Matplotlib 图的脚本 (plot.py)。我希望脚本绘制图形然后立即退出,但仍然保持图形打开。我知道我可以在终端窗口中使用 & 符号:

$ plot.py &

但我想避免每次都输入与号,而是通过分叉一个新进程来做到这一点,我尝试了:

import matplotlib.pyplot as plt 
import numpy as np
from multiprocessing import Process
import multiprocessing

def main():
    p = Process(target=showFigure)
    p.start()
    p.join()

def showFigure():
    p = multiprocessing.current_process()
    print ('Starting: {} {}'.format(p.name, p.pid))
    x = np.linspace(0, 2 * np.pi, 400)
    y = np.sin(x)
    plt.figure()
    plt.plot(x, y)
    plt.title('Simple test')
    plt.show()

if __name__ == '__main__':
    main()

但这不起作用。我还尝试删除 p.join() 并使用 daemon=True..

【问题讨论】:

  • 进程拥有GUI对象,如果它退出,窗口必须关闭。

标签: python python-3.x matplotlib


【解决方案1】:

这是适用于 Linux 的解决方案:

import matplotlib.pyplot as plt 
import numpy as np
import os

def main():
    pid=os.fork()
    if pid==0:
        showFigure()

def showFigure():
    x = np.linspace(0, 2 * np.pi, 400)
    y = np.sin(x)
    plt.figure()
    plt.plot(x, y)
    plt.title('Simple test')
    plt.show()

if __name__ == '__main__':
    main()

【讨论】:

    猜你喜欢
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 2019-12-29
    • 2014-10-14
    • 2017-09-12
    • 2019-09-05
    相关资源
    最近更新 更多