ipython –pylab vs ipython

¿Qué hace exactamente ipython --pylab ?

Es ipython --pylab exactamente equivalente a:

  > ipython > from pylab import * 

Si no es así, ¿cuáles son las diferencias?

Digamos que --pylab IPython sin los argumentos --pylab , ¿cómo puedo llevarlo al mismo estado que si lo hubiera iniciado con --pylab ?

--pylab[=option] es casi técnicamente equivalente a la %pylab option como la diferencia de que no puede --pylab -pylab un kernel --pylab , pero puede reiniciar un kernel %pylab .

%pylab es un poco más que solo from pylab import * (ver %pylab? para una explicación más extensa), pero en resumen sí importa muchas cosas, pero también enlaza bucles de eventos (qt, wx, osx …) y configure algunos ganchos de visualización para matplotlib (las cosas que mágicamente le permiten obtener gráficos en línea). La configuración del gancho de la pantalla está más cerca de algo como sympy.init_printing() si te preguntas.

Tenga en cuenta que a partir de IPython 1.0, recomendamos no utilizar --pylab o %pylab (a menos que sepa exactamente la implicación). Proporcionamos %matplotlib que solo %matplotlib el gancho de visualización. %pylab le avisará si reemplazó algunos objetos en el espacio de nombres actual, y cuáles. Esto es útil especialmente para funciones como la sum que no tienen el mismo comportamiento que el comportamiento con y sin Pylab y conduce a errores sutiles.

Consideramos ahora que --pylab fue un error, pero que todavía fue realmente útil al comienzo de IPython. Todos sabemos que Explicit is better than implicit por lo que si puede recomendar a las personas que no utilicen %pylab , le agradeceríamos que un día nos deshagamos de él.

Extraiga de% pylab help que solo proporciona la parte de importación de pylab:

 %pylab makes the following imports:: import numpy import matplotlib from matplotlib import pylab, mlab, pyplot np = numpy plt = pyplot from IPython.display import display from IPython.core.pylabtools import figsize, getfigs from pylab import * from numpy import * 

Una diferencia notable además de las importaciones es el trazado interactivo, que puede habilitar dinámicamente con:

 import matplotlib matplotlib.rcParams['interactive'] = True 

Creo que la opción --pylab en la línea de comandos es equivalente a usar la magia %pylab . Al menos así es como lo he usado. Eso también le da la oportunidad de elegir el backend de trazado, es decir, %pylab inline , %pylab qt , etc.