0

I am using ubuntu. I want to close a figure shown using matplotlib after few seconds without using keyboard or mouse. I am able to close an image shown using PIL after few seconds by getting its process id and then kill it.

And i am also little bit confused among terms figure, image and picture in matplotlib.

Thank you so much in advance.

Regarding part 1. i have used plt.close(), plt.close("all") as well as 'psutil' library to fetch process ID and kill. But none of them worked. I got only solution of closing an image opened via 'PIL'.

link :- How can I close an image shown to the user with the Python Imaging Library?

Regarding part 2. Actually, at some pages, i found the terms 'figure','picture' and 'image' were used interchangeably; and at some pages they were not. I saw 'plt.imshow()' is used for image and picture and 'plt.show()' is used for figure. But, what is difference between figure, image and picture. And when to use these functions?

link :- Why plt.imshow() doesn't display the image?

        # 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")

i expect that my shown figure closes automatically after a few seconds, instead of any manual intervention.

abhishek
  • 49
  • 9
  • For question 2. After some research, I came to know about distinction among picture, image and photo, here is link 'https://ell.stackexchange.com/q/10786/99775'. Photo is subset of image/picture. Photo is a special type of picture or image shot by any camera using photo sensitive plate. Whereas, picture is visual representation of anything and image is a picture, the word image can be also used in other sense, like image of a person etc.. – abhishek Aug 18 '19 at 15:02
  • And, a figure is a drawing or diagram conveying some information, usually it is used in mathematical or scientific area. – abhishek Aug 18 '19 at 15:05

0 Answers0