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.