绘制图形并退出但保持图形窗口打开

时间:2014-11-03 09:19:20

标签: python python-3.x matplotlib

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

$ 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 ..

1 个答案:

答案 0 :(得分:3)

这是适用于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()