¿Cuál es el puro Python equivalente a la función mágica de IPython llamada% matplotlib en línea?

En IPython Notebook, %matplotlib una función que contiene una llamada a la función magic %matplotlib , como esta:

 def foo(x): %matplotlib inline # ... some useful stuff happens in between here imshow(np.asarray(img)) 

Me gustaría poner esa función en un módulo de Python para poder importarlo y llamarlo.

Sin embargo, para hacer esto, necesitaría eliminar el %matplotlib inline de mi código y reemplazarlo con su equivalente de Python puro.

¿Cuál es el equivalente de Python puro?

%matplotlib inline se engancha directamente en la instancia de IPython. Puede obtener el equivalente usando %hist -t que muestra la entrada procesada como python puro, que muestra que %matplotlib inline es equivalente a get_ipython().magic('matplotlib inline') en el que get_ipython() devuelve el ipython actual objeto de concha. Es python puro, pero funcionará solo en un kernel IPython.

Para una explicación más detallada, %matplolib xxx acaba de configurar matplotlib backend a xxx, el caso od en línea es un poco diferente y requiere primero un backend que se envía con IPython y no con matplotlib. Incluso si este backend estaba en matplotlib, necesita ganchos en IPython para activar la visualización y el GC de las cifras de matplotlib después de la ejecución de cada celda.