He intentado durante horas hacer funcionar este sencillo script, pero nada de lo que hago parece ayudar. Es una ligera modificación del código de muestra de la trama animado más básico del sitio web de Matplotlib, que solo debe mostrar unos pocos cuadros de ruido (tengo el mismo problema con el código no modificado de su sitio web por cierto).La animación de Matplotlib se congela después de algunos fotogramas o simplemente no funciona
En mi computadora con el backend TkAgg obtengo unos 20 fotogramas (de un total de 60) antes de que la ventana de la trama se congele. Con Qt4Agg obtengo una ventana negra congelada y no se trazan cuadros en absoluto. Probé varias combinaciones de diferentes versiones de NumPy, PyQt, Python y Matplotlib, pero siempre obtengo el mismo resultado.
Háganme saber si esto le sirve o si algo anda mal. Estoy bastante seguro de que esto funcionó en el pasado, así que estoy pensando que puede tratarse de un problema de Windows o algo relacionado con ion()
.
FYI Estoy usando Windows 7 (32 bit) y lo he probado con 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)
Esta versión más simple queda como también después de los primeros marcos par:
from pylab import *
ion()
hold(False)
for i in range(40):
plot(randn(10))
draw()
show()
Gracias!
EDITAR: Estas personas parecen tener el mismo o un problema similar que yo:
- mail-archive.com/[email protected]/msg10844.html
- stackoverflow.com/questions/2604119/matplotlib-pyplot-pylab-not-updating-figure-while-isinteractive-using-ipython
- mail-archive.com/[email protected]/msg01283.html
No parece que ninguno de ellos haya podido repararlo tampoco :(
Probé los códigos anteriormente en Windows (64 bits) con Python 2.6.5, Numpy 1.5.0b1 y Matplotlib 1.0.0 sin ningún problema con la línea cmd. También los probé en IDLE y el primer código se bloquea y se bloquea al final, pero el segundo funcionó bien, lo que me sorprendió. No sé si eso ayuda en absoluto, pero ahí lo tienes. No tengo ningún material QT instalado, así que esto fue todo con Tk. –
Muchas gracias Justin. ¿Estás seguro de que se mostraron todos los marcos? Tengo un par antes de que las cosas se congelen. – Roger
Creo que los problemas de QTAgg están relacionados con este [problema de github] (https://github.com/matplotlib/matplotlib/issues/1646), usando pause() con pylab en lugar de draw() funciona, también muestra() shouldn ' ser necesario – seumas