Как закрыть фигуру или заменить фигуру без необходимости вручную закрывать каждую фигуру в Python / pylab? - PullRequest
3 голосов
/ 13 июля 2011

Я искал множество сайтов, использовал сюжеты, сюжеты, некоторую базовую анимацию и другие обходные пути, но рисунок не закроется, несмотря на использование close (), clf () и т. Д.

У меня есть кое-чтокак это:

    import numpy
    from pylab import *
    import time
    fig = Figure() 
    counter1 = 0
    counter2 = 0

    while counter1<5:
            counter1 = counter1+1
            while counter2<10:
                    scatter(x_list[counter2], y_list[counter2], hold = 'on') ### x_list and y_list are just lists of random numbers
                    counter2 = counter2 + 1
            show()
            sleep(0.5)
            close()

Я ищу любое решение, как показано выше.Сюжеты, сюжеты, анимация ...

1 Ответ

3 голосов
/ 13 июля 2011

Начнем с двух сторон: во-первых, вы уверены, что этот код на самом деле выполняется?sleep не является функцией в моей версии pylab, поэтому ваше время импорта не соответствует вашему вызову, оно должно быть time.sleep (0.5). Во-вторых, я вообще не понимаю ваши циклы.Похоже, вы строите одно и то же 5 раз, потому что counter1 не действует, и вы добавляете каждую точку на диаграмму рассеяния перед паузой.Вы пытаетесь построить x_list / y_list по точкам?

Если вы используете draw () вместо show (), я думаю, это должно сработать;show () - это то, что удерживает close ().Это что-то вроде того, что вы хотите?

import time
from pylab import *
ion()

# test data
x = arange(0, 10, 0.5)
y = 10*x+exp(x)*abs(cos(x))

for j in range(len(x)):
    if j > 0: scatter(x[:j], y[:j])
    # assuming we don't want the limits to change
    xlim(0, 10)
    ylim(0, 1000)
    draw()
    time.sleep(2)
    #close()

Обратите внимание, что я закомментировал close (), потому что таким образом он производит хорошую анимацию.Если вы оставите его внутри, оно продолжит закрывать и снова открывать окно, что может быть тем, что вы хотите, но не выглядит очень полезным для моих глаз.YMMV, конечно.

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