La función Matplotlib ion () no es interactiva

Tengo un problema con la función interactiva de Matplotlib. Ejecuté el siguiente progtwig y recibí una ventana con gráficos vacíos.

import matplotlib.pyplot as plt import numpy as np plt.ion() x = np.arange(0, 4*np.pi, 0.1) y = [np.sin(i) for i in x] plt.plot(x, y, 'g-', linewidth=1.5, markersize=4) plt.show() 

Si eliminé la statement ‘plt.ion ()’, entonces funcionó bien. Uso IDLE y el paquete Matplotlib versión 1.2.x está instalado en Python 3.2.2.

Espero que sea interactivo, pero en su lugar obtuve una ventana hostil no interactiva. ¿Alguien puede arrojar algo de luz sobre lo que me estoy perdiendo? Gracias de antemano.

Me encontré con este enlace que se encuentra aquí , que responde a mi problema.

Parece que después de activar el modo interactivo a través de plt.ion() , pyplot debe pausarse temporalmente para que se actualice / plt.pause(0.0001) través de plt.pause(0.0001) . ¡Esto es lo que hice y funciona!

 >>> import matplotlib.pyplot as plt >>> import numpy as np >>> plt.ion() >>> x = np.arange(0, 4*np.pi, 0.1) >>> y = [np.sin(i) for i in x] >>> plt.plot(x, y, 'g-', linewidth=1.5, markersize=4) >>> plt.pause(0.0001) >>> plt.plot(x, [i**2 for i in y], 'g-', linewidth=1.5, markersize=4) >>> plt.pause(0.0001) >>> plt.plot(x, [i**2*i+0.25 for i in y], 'r-', linewidth=1.5, markersize=4) >>> plt.pause(0.0001) 

Si lo intentó en su consola IDLE, observe que hasta este punto todo se muestra, excepto que la ventana del gráfico se congela y no puede salir. Para descongelarlo, escriba la siguiente statement

 >>> plt.show(block=True) 

Ahora la ventana se puede cerrar.

Tengo exactamente el mismo problema. En ipython está el magic %matplotlib , que me solucionó el problema. Al menos ahora puedo escribir plt.figure() (asumiendo que se ha llamado a la import matplotlib.pyplot as plt ) y obtener una figura de respuesta totalmente interactiva.

Sin embargo, todavía estaría interesado en saber qué importa exactamente esta magia para poder entender el problema.