6 ответов:
настройки способ
IPython имеет профили для конфигурации, расположенные по адресу
~/.ipython/profile_*. Профиль по умолчанию называетсяprofile_default. В этой папке есть два основных файла конфигурации:
ipython_config.pyipython_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Примечание ниже подход также по-прежнему работает, где вы создаете файл на ниже пути
~/.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