¿Podría alguien explicarme de qué sirve exactamente %matplotlib inline
?
inline
) mediante la introducción de: %matplotlib --list
.
¿Podría alguien explicarme de qué sirve exactamente %matplotlib inline
?
inline
) mediante la introducción de: %matplotlib --list
.
Respuestas:
%matplotlib
Es una función mágica en IPython. Citaré la documentación relevante aquí para que la lea por conveniencia:
IPython tiene un conjunto de 'funciones mágicas' predefinidas a las que puede llamar con una sintaxis de estilo de línea de comando. Hay dos tipos de magias, orientadas a líneas y orientadas a células. Las magias de línea tienen como prefijo el carácter% y funcionan de manera muy similar a las llamadas de línea de comandos del sistema operativo: obtienen como argumento el resto de la línea, donde los argumentos se pasan sin paréntesis ni comillas. Las líneas mágicas pueden devolver resultados y pueden usarse en el lado derecho de una tarea. La magia de las celdas tiene el prefijo%%, y son funciones que obtienen como argumento no solo el resto de la línea, sino también las líneas debajo de ella en un argumento separado.
%matplotlib inline
establece el backend de matplotlib en el backend 'en línea' :
Con este backend, la salida de los comandos de trazado se muestra en línea dentro de las interfaces como el cuaderno Jupyter, directamente debajo de la celda de código que lo produjo. Las parcelas resultantes también se almacenarán en el documento del cuaderno.
Cuando utilice el backend 'en línea', sus gráficos matplotlib se incluirán en su computadora portátil, junto al código. Puede valer la pena leer también Cómo hacer que el cuaderno de IPython matplotlib trace en línea para referencia sobre cómo usarlo en su código.
Si también desea interactividad, puede usar el backend nbagg con %matplotlib notebook
(en IPython 3.x), como se describe aquí .
Siempre que esté ejecutando IPython, %matplotlib inline
hará que los resultados de su trazado aparezcan y se almacenen en el cuaderno.
De acuerdo con la documentación
Para configurar esto, antes de realizar cualquier trazado o importación de
matplotlib
debe ejecutar el%matplotlib magic command
. Esto realiza la configuración necesaria detrás de escena para que IPython funcione correctamente de la manomatplotlib
; sin embargo, en realidad no ejecuta ningún comando de importación de Python, es decir, no se agregan nombres al espacio de nombres.Un backend particularmente interesante, proporcionado por IPython, es el
inline
backend. Esto está disponible solo para el Jupyter Notebook y el Jupyter QtConsole. Se puede invocar de la siguiente manera:%matplotlib inline
Con este backend, la salida de los comandos de trazado se muestra en línea dentro de las interfaces como el cuaderno Jupyter, directamente debajo de la celda de código que lo produjo. Las parcelas resultantes también se almacenarán en el documento del cuaderno.
Si desea agregar tramas a su computadora portátil Jupyter, entonces %matplotlib inline
es una solución estándar. Y hay otros comandos mágicos que se usarán matplotlib
interactivamente dentro de Jupyter.
%matplotlib
: cualquier plt
comando de trazado ahora abrirá una ventana de figura, y se pueden ejecutar más comandos para actualizar el trazado. Algunos cambios no se dibujarán automáticamente, para forzar una actualización, useplt.draw()
%matplotlib notebook
: conducirá a tramas interactivas incrustadas en el cuaderno, puede hacer zoom y cambiar el tamaño de la figura
%matplotlib inline
: solo dibuja imágenes estáticas en el cuaderno
Comenzando con IPython 5.0 y matplotlib 2.0, puede evitar el uso de la magia específica de IPython y el uso
matplotlib.pyplot.ion()/matplotlib.pyplot.ioff()
que tiene las ventajas de trabajar también fuera de IPython.
inline
, los gráficos se generan en ventanas externas y debe usar display () para mostrarlos en el cuaderno.
Simplemente significa que cualquier gráfico que estamos creando como parte de nuestro código aparecerá en el mismo cuaderno y no en una ventana separada, lo que sucedería si no hubiéramos usado esta declaración mágica.
Si no sabe qué es el backend, puede leer esto: https://matplotlib.org/tutorials/introductory/usage.html#backends
Algunas personas usan matplotlib de forma interactiva desde el shell de python y aparecen ventanas emergentes de trazado cuando escriben comandos. Algunas personas ejecutan cuadernos Jupyter y dibujan diagramas en línea para un análisis rápido de datos. Otros integran matplotlib en interfaces gráficas de usuario como wxpython o pygtk para crear aplicaciones ricas. Algunas personas usan matplotlib en scripts por lotes para generar imágenes postscript a partir de simulaciones numéricas, y otras ejecutan servidores de aplicaciones web para servir gráficos dinámicamente. Para admitir todos estos casos de uso, matplotlib puede apuntar a diferentes salidas, y cada una de estas capacidades se denomina back-end; el "frontend" es el código de cara al usuario, es decir, el código de trazado, mientras que el "backend" hace todo el trabajo duro detrás de escena para hacer la figura.
Entonces, cuando escribe% matplotlib en línea, se activa el backend en línea. Como se discutió en las publicaciones anteriores:
Con este backend, la salida de los comandos de trazado se muestra en línea dentro de las interfaces como el cuaderno Jupyter, directamente debajo de la celda de código que lo produjo. Las parcelas resultantes también se almacenarán en el documento del cuaderno.
TL; DR
%matplotlib inline
- Muestra la salida en líneaEl kernel de IPython tiene la capacidad de mostrar diagramas ejecutando código. El kernel de IPython está diseñado para funcionar sin problemas con la biblioteca de trazado matplotlib para proporcionar esta funcionalidad.
%matplotlib
es un comando mágico que realiza la configuración necesaria detrás de escena para que IPython funcione correctamente de la manomatplotlib
; no ejecuta ningún comando de importación de Python, es decir, no se agregan nombres al espacio de nombres.
%matplotlib
(disponible solo para Jupyter Notebook y Jupyter QtConsole)
%matplotlib inline
(valores válidos 'GTK3Agg', 'GTK3Cairo', 'MacOSX', 'nbAgg', 'Qt4Agg', 'Qt4Cairo', 'Qt5Agg', 'Qt5Cairo', 'TkAgg', 'TkCairo', 'WebAgg', 'WX', 'WXAgg', 'WXCairo', 'agg', 'cairo', 'pdf', 'pgf', 'ps', 'svg', 'template'
)
%matplotlib gtk
Ejemplo: GTK3Agg: representación de Agg en un lienzo GTK 3.x (requiere PyGObject y pycairo o cairocffi).
Más detalles sobre backends interactivos matplotlib: aquí
A partir de
IPython 5.0
ymatplotlib 2.0
se puede evitar el uso de la magia específica de IPython y el usomatplotlib.pyplot.ion()
/matplotlib.pyplot.ioff()
la que tiene las ventajas de trabajar fuera del IPython también.
Consulte: Salida enriquecida de IPython : trazado interactivo
Siempre que esté ejecutando Jupyter Notebook, el comando en línea% matplotlib hará que sus resultados de trazado aparezcan en el cuaderno, también se pueden almacenar.
No es obligatorio escribir eso. Funcionó bien para mí sin ( %matplotlib
) función mágica. Estoy usando el compilador Sypder, uno que viene en Anaconda.