Hay muchas preguntas sobre matplotlib, pylab, pyplot, ipython, así que lamento si está cansado de ver esto. Trataré de ser lo más específico posible, porque he estado revisando las preguntas de las personas y mirando la documentación de pyplot y pylab, y todavía no estoy seguro de lo que estoy haciendo mal. Activado con el código:matplotlib.pyplot/pylab no actualizando figure while isinteractive(), usando ipython -pylab
Objetivo: trazar una figura cada 0,5 segundos y actualizar la figura tan pronto como se llame al comando de trazado.
Mi intento de codificar esta siguiente (que se ejecuta en -pylab ipython):
import time
ion()
x=linspace(-1,1,51)
plot(sin(x))
for i in range(10):
plot([sin(i+j) for j in x])
#see **
print i
time.sleep(1)
print 'Done'
correctamente parcelas cada línea, pero no hasta que haya salido el bucle. He intentado forzar un rediseño poniendo draw()
donde está **
, pero eso tampoco parece funcionar. Idealmente, me gustaría que simplemente agregue cada línea, en lugar de hacer un redibujado completo. Sin embargo, si se necesita volver a dibujar, está bien.
intentos adicionales de problemas:
justo después ion()
, añadiendo hold(True)
trataron en vano.
por diversión trataron show()
para **
La respuesta más cercana que he encontrado lo que estoy tratando de hacer estaba en plotting lines without blocking execution, pero show()
no está haciendo nada.
Pido disculpas si se trata de una solicitud directa, y estoy buscando algo tan obvio. Por lo que vale, esto surgió cuando estaba tratando de convertir el código matlab de la clase a una python para mi propio uso. El MATLAB originales (inicializaciones eliminados) que he estado tratando de convertir la siguiente manera:
for i=1:time
plot(u)
hold on
pause(.01)
for j=2:n-1
v(j)=u(j)-2*u(j-1)
end
v(1)= pi
u=v
end
Cualquier ayuda, incluso si es sólo "mirar hacia arriba this_method" sería excelente, así que al menos se puede reducir mis esfuerzos a averiguar cómo usar ese método. Si hay más información que sería útil, házmelo saber.
[Debe usar 'pyplot.pause' en lugar de' time.sleep'.] (Http://stackoverflow.com/questions/12822762/pylab-ion-in-python-2-matplotlib-1-1- 1-and-updating-of-the-plot-while-the-pro) –
Tuve el mismo problema al utilizar el backend QT4Agg en Windows, creo que está relacionado con este [problema github] (https://github.com/matplotlib/matplotlib/issues/1646), usando pyplot.pause() lo arregló. – seumas