首页 > 解决方案 > 如何关闭在 python 中使用 matplotlib 显示的图形?图像,图形和图片之间有什么区别?

问题描述

我正在使用 ubuntu。我想在几秒钟后关闭使用 matplotlib 显示的图形,而不使用键盘或鼠标。几秒钟后,我可以通过获取其进程 ID 来关闭使用 PIL 显示的图像,然后将其杀死。

而且我对matplotlib中的数字、图像和图片术语也有点困惑。

非常感谢你。

关于第 1 部分。我使用 plt.close()、plt.close("all") 以及 'psutil' 库来获取进程 ID 并终止。但他们都没有工作。我只有关闭通过“PIL”打开的图像的解决方案。

链接 :- 如何关闭使用 Python 图像库向用户显示的图像?

关于第 2 部分。实际上,在某些页面上,我发现术语“图形”、“图片”和“图像”可以互换使用;在某些页面上,它们不是。我看到'plt.imshow()'用于图像和图片,'plt.show()'用于图形。但是,图形,图像和图片之间有什么区别。以及何时使用这些功能?

链接:- 为什么 plt.imshow() 不显示图像?

        # for graphing
        import matplotlib.pyplot as plt
        import time
        # for process
        import psutil
        # importing for image processing
        from PIL import Image


        #### closing an image which was opened via PIL
        #### working perfectly

        filename = "check.jpg"       
        img = Image.open(filename)
        img.show()
        time.sleep(5)
        # for killing process such that image viewer
        for proc in psutil.process_iter():
            if proc.name() == "display":
                proc.kill()


        #### closing an image/figure which was opened via matplotlib
        #### unable to close without keyboard or mouse

        x = [[1,2,3,4],[11,22,33,44],[9,8,7,6]]
        print (x)
        plt.imshow(x)
        plt.colorbar()
        plt.title("a")
        plt.xlabel('b')
        plt.ylabel('c')
        a = plt.show()
        time.sleep(2)
                      ## not working
        plt.close()
                      ## not working
        for proc in psutil.process_iter():
            if proc.name() == "display":
                proc.kill()
                       ## not working
        plt.close("all")

我希望我显示的图形会在几秒钟后自动关闭,而不是任何手动干预。

标签: python-3.xmatplotlibpython-imaging-librarypsutil

解决方案


推荐阅读