matplotlib.close () не закрывает участок - PullRequest
0 голосов
/ 31 января 2019

Я использую Python 3.6 в ноутбуке Jupyter.plt.close не закрывает участок.Я пытался использовать plt.ion () также и многими другими способами.

Я хочу отобразить изображение, затем дождаться паузы или ввода (), а затем удалить предыдущее изображение и показать новое.

import matplotlib.pyplot as plt
from time import sleep
from scipy import eye

plt.imshow(eye(3))
plt.show()
sleep(1)
plt.close()

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Вот пример, который показывает последовательность графиков, каждый на одну секунду.Существенными являются команты plt.show(block = False) и plt.pause(1) вместо sleep(1):

import numpy as np
import matplotlib.pyplot as plt

def show_image(n):
    fig, ax = plt.subplots()
    x = np.linspace(0,1,100)
    y = x**n
    ax.plot(x,y, label = 'x**{}'.format(n))
    ax.legend()
    plt.show(block=False)
    plt.pause(1)
    plt.close(fig)



for i in range(10):
    show_image(i)
0 голосов
/ 31 января 2019

Если я правильно понимаю, вам нужно показать сюжет, подождите 1 секунду, а затем автоматически закройте его.

Это будет достигнуто следующим образом.

import matplotlib.pyplot as plt
from scipy import eye

plt.imshow(eye(3))

def show_and_close(sec):
    timer = plt.gcf().canvas.new_timer(interval=sec*1000)
    timer.add_callback(lambda : plt.close())
    timer.single_shot = True
    timer.start()
    plt.show()

show_and_close(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...