Анимация Matplotlib или замораживания после нескольких кадров или просто не работают

Я пытался в течение многих часов получить эту простую работу сценария, но ничто, что я делаю, кажется, не помогает. Это - небольшая модификация самого основного анимированного примера кода графика с веб-сайта Matplotlib, который должен просто показать несколько кадров шума (у меня есть та же проблема с неизмененным кодом с их веб-сайта BTW).

На моем компьютере с бэкендом TkAgg я получаю приблизительно 20 кадров (из 60) перед замораживаниями окна графика. С Qt4Agg я просто получаю замороженное, черное окно, и никакие кадры вообще не напечатаны. Я попробовал несколько комбинаций другого NumPy, PyQt, Python и версий Matplotlib, но всегда получаю тот же результат.

Сообщите мне, работает ли это на Вас или если что-либо выглядит неправильным. Я вполне уверен, это действительно работало в прошлом, таким образом, я думаю, что это может быть проблема Windows или что-то связанное с ion().

К вашему сведению я использую Windows 7 (32 бита), и я протестировал с Python 2.6/2.7, MPL 1.0.0/0.9.9.8, PyQt 4.6/4.7, Numpy 1.4/1.5b.

import matplotlib
matplotlib.use('TkAgg') # Qt4Agg gives an empty, black window
from pylab import *
import time

ion()
hold(False)

# create initial plot
z = zeros(10)
line, = plot(z)
ylim(-3, 3)

for i in range(60):
    print 'frame:', i

    d = randn(10)
    line.set_ydata(d)

    draw()
    time.sleep(10e-3)

Эта более простая версия также замораживается после первых кадров пары:

from pylab import *

ion()
hold(False)

for i in range(40):
    plot(randn(10))
    draw()

show()

Спасибо!

Править: У этих людей, кажется, есть то же или подобная проблема как я:

  • mail-archive.com/matplotlib-users@lists.sourceforge.net/msg10844.html
  • stackoverflow.com/questions/2604119/matplotlib-pyplot-pylab-not-updating-figure-while-isinteractive-using-ipython
  • mail-archive.com/matplotlib-users@lists.sourceforge.net/msg01283.html

Не похож ни на одного из них, смогли зафиксировать его также :(

6
задан Roger 9 August 2010 в 17:29
поделиться