2012-03-17 16 views
15

me gustaría tener la matplotlib comando "show" retorno a la línea de comandos al tiempo que muestra la trama. La mayoría de los otros paquetes de trazado, como R, hacen esto. Pero Pylab se cuelga hasta que se cierra la ventana de la trama. Por ejemplo:pylab matplotlib "espectáculo" espera hasta que se cierra la ventana

import pylab 
x = pylab.arange(0, 10, 0.1) 
y = pylab.sin(x) 
pylab.plot(x,y, 'ro-') 
pylab.show() # Python hangs here until the plot window is closed 

Me gustaría poder ver la trama mientras hago consultas de línea de comando. estoy corriendo Debian Squeeze con Python 2.6.6. Mi ~/.matplotlib/matplotlibrc contiene

backend  : GTKAgg 

Gracias!

+2

Trate de usar [IPython] (http://ipython.org/) –

+0

que significa 'ipython -pylab' para obtener el multihilo. –

Respuesta

22

Agregar pylab.ion() (interactive mode) antes de la llamada pylab.show(). Eso hará que la carrera de interfaz de usuario en un hilo separado y la llamada a show volverá inmediatamente.

+1

Gracias. Funciona bien. Con 'ion()', el comando 'show()' ya no es necesario. – Sullivan

+1

Devuelve hecho de inmediato, pero ¿por qué la figura cuelga allí mostrando "No responde" –

5

necesita ejecutar como

$ ipython --pylab 

y ejecutar su código como

In [8]: x = arange(0,10,.1) 

In [9]: y = sin(x) 

In [10]: plot(x,y,'ro-') 

Out[10]: [<matplotlib.lines.Line2D at 0x2f2fd50>] 

In [11]: 

Esto le da el símbolo para los casos en que se quieren modificar otras partes o trama más.

+0

Gracias. Esto funciona bien – Sullivan

Cuestiones relacionadas