Автоматический запуск %matplotlib inline в IPython Notebook



каждый раз, когда я запускаю IPython Notebook, первая команда, которую я запускаю, -



%matplotlib inline


есть ли способ изменить мой конфигурационный файл, чтобы при запуске IPython он автоматически находился в этом режиме?

645   6  

6 ответов:

настройки способ

IPython имеет профили для конфигурации, расположенные по адресу ~/.ipython/profile_*. Профиль по умолчанию называется profile_default. В этой папке есть два основных файла конфигурации:

  • ipython_config.py
  • ipython_kernel_config

добавьте встроенную опцию для matplotlib в ipython_kernel_config.py:

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

matplotlib против pylab

использование %pylab чтобы получить встроенный график уныние.

он вводит все виды грязи в ваше пространство имен, которые вам просто не нужны.

%matplotlib С другой стороны, позволяет встроенное построение без введения вашего пространства имен. Вам нужно будет сделать явные вызовы, чтобы получить matplotlib и NumPy импортированы.

import matplotlib.pyplot as plt
import numpy as np

небольшая цена ввода вашего импорта явно должна быть полностью преодолена тем фактом, что теперь у вас есть воспроизводимый код.

Я думаю, что вы хотите запустить следующее из командной строки:

ipython notebook --matplotlib=inline

Если вам не нравится вводить его в строке cmd каждый раз, то вы можете создать псевдоним, чтобы сделать это за вас.

в своем ipython_config.py файл, найдите следующие строки

# c.InteractiveShellApp.matplotlib = None

и

# c.InteractiveShellApp.pylab = None

и раскомментировать их. Затем измените None к backend, который вы используете (я использую 'qt4') и сохраните файл. Перезагрузите IPython, и matplotlib и pylab должны быть загружены - вы можете использовать dir() команда, чтобы проверить, какие модули находятся в глобальном пространстве имен.

В (текущем) IPython 3.2.0 (Python 2 или 3)

откройте файл конфигурации в скрытой папке .ipython

~/.ipython/profile_default/ipython_kernel_config.py

добавить следующую строку

c.IPKernelApp.matplotlib = 'inline'

добавить сразу после

c = get_config()

параметр был отключен в Jupyter 5.X и выше, добавив ниже код

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)

и в предыдущих версиях это было главным образом предупреждение. Но это не большая проблема, потому что Jupyter использует понятия kernels и вы можете найти ядро для вашего проекта, выполнив команду ниже

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

это дает мне путь к папке ядра. Теперь, если я открою , Я вижу что-то вроде ниже

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

так что вы можете увидеть, что команда выполняется для запуска ядра. Так что если вы запустите следующую команду

$ 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`

так что теперь, если мы обновим наш до

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

а если я побегу jupyter notebook графики автоматически inline

Auto Inline

Примечание ниже подход также по-прежнему работает, где вы создаете файл на ниже пути

~/.ipython/profile_default/ipython_kernel_config.py

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

но недостатком такого подхода является то, что это глобальное воздействие на каждую среду с использованием python. Вы можете рассматривать это как преимущество также, если вы хотите иметь общее поведение в разных средах с одним изменением.

поэтому выберите, какой подход вы хотели бы использовать на основе вашего требования

далее к @Kyle Kelley и @DGrady, вот запись, которую можно найти в

$HOME/.ipython/profile_default/ipython_kernel_config.py (или какой бы профиль вы ни создали)

изменить

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

до

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

Это будет работать как в сеансах ipython qtconsole, так и в ноутбуках.

Comments

    Ничего не найдено.