usar tutorial tablas notebook introduccion español descargar datos como cargar python matplotlib ipython-notebook

tutorial - Ejecute automáticamente% matplotlib en línea en el cuaderno de IPython



jupyter python 3 (6)

La forma de configuración

IPython tiene perfiles para configuración, ubicados en ~/.ipython/profile_* . El perfil predeterminado se llama profile_default . Dentro de esta carpeta hay dos archivos de configuración principales:

  • ipython_config.py
  • ipython_kernel_config

Agregue la opción en línea para matplotlib a ipython_kernel_config.py :

c = get_config() # ... Any other configurables you want to set c.InteractiveShellApp.matplotlib = "inline"

matplotlib vs. pylab

Se discouraged uso de %pylab para obtener un trazado en línea.

Introduce todo tipo de suciedad en tu espacio de nombres que simplemente no necesitas.

%matplotlib por otro lado permite el trazado en línea sin inyectar su espacio de nombres. Tendrá que hacer llamadas explícitas para obtener matplotlib y numpy importados.

import matplotlib.pyplot as plt import numpy as np

El pequeño precio de escribir sus importaciones explícitamente debe ser completamente superado por el hecho de que ahora tiene código reproducible.

Cada vez que inicio IPython Notebook, el primer comando que ejecuto es

%matplotlib inline

¿Hay alguna forma de cambiar mi archivo de configuración para que cuando inicie IPython, esté automáticamente en este modo?


Además de @Kyle Kelley y @DGrady, esta es la entrada que se puede encontrar en

$HOME/.ipython/profile_default/ipython_kernel_config.py (o el perfil que haya creado)

Cambio

# Configure matplotlib for interactive use with the default matplotlib backend. # c.IPKernelApp.matplotlib = none

a

# Configure matplotlib for interactive use with the default matplotlib backend. c.IPKernelApp.matplotlib = ''inline''

Esto funcionará tanto en ipython qtconsole como en sesiones de cuaderno.


Creo que lo que quieres es ejecutar lo siguiente desde la línea de comando:

ipython notebook --matplotlib=inline

Si no te gusta escribirlo en la línea del cmd cada vez, entonces puedes crear un alias que lo haga por ti.


En (el actual) IPython 3.2.0 (Python 2 o 3)

Abra el archivo de configuración dentro de la carpeta oculta .ipython

~/.ipython/profile_default/ipython_kernel_config.py

agregue la siguiente línea

c.IPKernelApp.matplotlib = ''inline''

agrégalo directamente después

c = get_config()


En su archivo ipython_config.py , busque las siguientes líneas

# c.InteractiveShellApp.matplotlib = None

y

# c.InteractiveShellApp.pylab = None

y descomentarlos. Luego, cambie None al back-end que está usando (uso ''qt4'' ) y guarde el archivo. Reinicie IPython, y deben cargarse matplotlib y pylab; puede usar el comando dir() para verificar qué módulos están en el espacio de nombres global.


La configuración se deshabilitó en Jupyter 5.X y superior al agregar el código siguiente

pylab = Unicode(''disabled'', config=True, help=_(""" DISABLED: use %pylab or %matplotlib in the notebook to enable matplotlib. """) ) @observe(''pylab'') def _update_pylab(self, change): """when --pylab is specified, display a warning and exit""" if change[''new''] != ''warn'': backend = '' %s'' % change[''new''] else: backend = '''' self.log.error(_("Support for specifying --pylab on the command line has been removed.")) self.log.error( _("Please use `%pylab{0}` or `%matplotlib{0}` in the notebook itself.").format(backend) ) self.exit(1)

Y en versiones anteriores, ha sido principalmente una advertencia. Pero esto no es un gran problema porque Jupyter usa conceptos de kernels y puedes encontrar kernel para tu proyecto ejecutando el comando below

$ jupyter kernelspec list Available kernels: python3 /Users/tarunlalwani/Documents/Projects/SO/notebookinline/bin/../share/jupyter/kernels/python3

Esto me da la ruta a la carpeta kernel. Ahora si abro el archivo /Users/tarunlalwani/Documents/Projects/SO/notebookinline/bin/../share/jupyter/kernels/python3/kernel.json , veo algo como lo siguiente

{ "argv": [ "python", "-m", "ipykernel_launcher", "-f", "{connection_file}", ], "display_name": "Python 3", "language": "python" }

Para que pueda ver qué comando se ejecuta para iniciar el kernel. Entonces, si ejecutas el comando a continuación

$ python -m ipykernel_launcher --help IPython: an enhanced interactive Python shell. Subcommands ----------- Subcommands are launched as `ipython-kernel cmd [args]`. For information on using subcommand ''cmd'', do: `ipython-kernel cmd -h`. install Install the IPython kernel Options ------- Arguments that take values are actually convenience aliases to full Configurables, whose aliases are listed on the help line. For more information on full configurables, see ''--help-all''. .... --pylab=<CaselessStrEnum> (InteractiveShellApp.pylab) Default: None Choices: [''auto'', ''agg'', ''gtk'', ''gtk3'', ''inline'', ''ipympl'', ''nbagg'', ''notebook'', ''osx'', ''pdf'', ''ps'', ''qt'', ''qt4'', ''qt5'', ''svg'', ''tk'', ''widget'', ''wx''] Pre-load matplotlib and numpy for interactive use, selecting a particular matplotlib backend and loop integration. --matplotlib=<CaselessStrEnum> (InteractiveShellApp.matplotlib) Default: None Choices: [''auto'', ''agg'', ''gtk'', ''gtk3'', ''inline'', ''ipympl'', ''nbagg'', ''notebook'', ''osx'', ''pdf'', ''ps'', ''qt'', ''qt4'', ''qt5'', ''svg'', ''tk'', ''widget'', ''wx''] Configure matplotlib for interactive use with the default matplotlib backend. ... To see all available configurables, use `--help-all`

Así que ahora si actualizamos nuestro archivo kernel.json a

{ "argv": [ "python", "-m", "ipykernel_launcher", "-f", "{connection_file}", "--pylab", "inline" ], "display_name": "Python 3", "language": "python" }

Y si jupyter notebook los gráficos están automáticamente en inline

Tenga en cuenta que el enfoque a continuación también funciona, donde crea un archivo en la ruta siguiente

~ / .ipython / profile_default / ipython_kernel_config.py

c = get_config() c.IPKernelApp.matplotlib = ''inline''

Pero la desventaja de este enfoque es que este es un impacto global en todos los entornos que usan Python. Puede considerar eso como una ventaja también si desea tener un comportamiento común en todos los entornos con un solo cambio.

Así que elija qué enfoque le gustaría usar en función de su requisito