comportamiento extraño, estoy seguro de que soy yo metiendo la pata, pero me gustaría llegar al fondo de lo que está sucediendo:Python Matplotlib cuelga cuando se le preguntó a trazar un segundo gráfico (después de cerrar la primera ventana del gráfico)
estoy funcionando con el siguiente código para crear una ventana gráfica muy sencilla usando matplotlib:
>>> import matplotlib.pyplot as plt
>>> fig = plt.figure()
>>> ax = fig.add_subplot(111)
>>> ax.plot((1, 3, 1))
[<matplotlib.lines.Line2D object at 0x0290B750>]
>>> plt.show()
y como se esperaba consigo la carta era de esperar, en una nueva ventana que ha aparecido, que contiene una muy simple línea azul va de 1 a 3 de nuevo a 1 nuevamente en el eje y, con 0, 1, 2 como puntos del eje x (solo como ejemplo). Ahora cierro la ventana del gráfico (usando el botón cruzado en la esquina superior derecha debajo de Windows). Esto me da el control al intérprete, y empezar de nuevo, la creación de nuevos objetos:
>>>
>>> fig1 = plt.figure()
>>> bx = fig1.add_subplot(111)
>>> bx.plot((1, 3, 1))
[<matplotlib.lines.Line2D object at 0x029E8210>]
>>> plt.show()
Esta vez, sin embargo, me sale un marco de ventana, sin nada en él (sólo el marco, ningún fondo blanco nada), y toda la sesión de bang se cuelga. Tengo que "finalizar la tarea", el intérprete de Python es terminado por el sistema y me devuelve un símbolo del sistema. Comportamiento similar en un Mac (excepto que en realidad traza el gráfico primero, antes de colgar también).
De modo que Python y/o matplotlib no quieren que cierre la ventana manualmente. ¿Alguien sabe lo que está pasando y lo que debería estar haciendo? Lo que me gustaría hacer es jugar con diferentes tramas dentro del intérprete, y obviamente este comportamiento no ayuda. Sé que podría usar "Ipython -pylab", pero con el interés de aprender, quiero entender el error anterior.
Gracias.
que tengo ahora Casey, pero ningún cambio. Cuando llamo a plt.show(), muestra que la ventana del gráfico por el intérprete de Python deja de funcionar, es decir, no tengo un aviso. Solo cuando cierro la ventana recupero el aviso. Si luego llamo a plt.close() y luego continúo, se comporta exactamente de la misma manera, es decir, se bloquea. Tener la sensación (cavando en el sitio web de Matplotlib) de que básicamente quieren que te mantengas en iPython en el modo -pylab. –
intente descargar scipy, si no lo tiene ya e importar pylab. funciona igual que matplotlib. – Nope
No, nada tampoco. Si import pylab, y haz todo lo anterior, se comporta exactamente de la misma manera. –