Каждый раз, когда я запускаю IPython Notebook, я запускаю первую команду:
%matplotlib inline
Есть ли способ изменить мой файл конфигурации, чтобы при запуске IPython он автоматически находился в этом режиме?
Каждый раз, когда я запускаю IPython Notebook, я запускаю первую команду:
%matplotlib inline
Есть ли способ изменить мой файл конфигурации, чтобы при запуске IPython он автоматически находился в этом режиме?
ipython --matplotlib
is betterОтветы:
Способ конфигурации
IPython имеет профили для настройки, расположенные по адресу
~/.ipython/profile_*
. Профиль по умолчанию называетсяprofile_default
. В этой папке есть два основных файла конфигурации:ipython_config.py
ipython_kernel_config.py
Добавьте встроенный параметр для 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
Небольшая цена явного ввода вашего импорта должна быть полностью преодолена тем фактом, что теперь у вас есть воспроизводимый код.
источник
%matplotlib
вызовете, или он установил бэкэнд по умолчанию и автоматически настроил его для использования немедленно в Среда iPython.matplotlib
vspylab
, iPython упрощает автоматическое выполнение произвольного кода Python при каждом запуске с использованием профилей. Я считаю, что довольно часто бывает профиль, в котором вы автоматически выполняете общий импорт, напримерimport numpy as np; import pandas as pd; import matplotlib.pyplot as plt
, и т. Д. NB:pylab
это не то же самое, чтоpyplot
. Мне понадобился месяц, чтобы осознать это.ipython_kernel_config.py
, содержащий эту опцию. Создайте новый профиль (ipython profile create test
), чтобы получить профиль по умолчанию.c.InteractiveShellApp.matplotlib = "inline"
Я думаю, что вы можете запустить из командной строки следующее:
Если вам не нравится каждый раз вводить его в строке cmd, вы можете создать псевдоним, который сделает это за вас.
источник
--matplotlib inline
и удалите материал --pylab. См. Эту публикацию ipython devel why: carreau.github.io/posts/10-No-PyLab-Thanks.ipynb.htmlmatplotlib=inline
: он замедлит каждое запускаемое вами ядро, независимо от того, хотите ли вы использовать matplotlib.--matplotlib
или--pylab
игнорируются.%pylab
или%matplotlib
вместо них.Параметр был отключен в
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
и вы можете найти ядро для своего проекта, выполнив команду нижеЭто дает мне путь к папке ядра. Теперь, если я открываю
/Users/tarunlalwani/Documents/Projects/SO/notebookinline/bin/../share/jupyter/kernels/python3/kernel.json
файл, я вижу что-то вроде ниже{ "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`
Итак, теперь, если мы обновим наш
kernel.json
файл до{ "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. Вы можете рассматривать это как преимущество также, если хотите иметь общее поведение в разных средах с одним изменением.
Поэтому выберите подход, который вы хотите использовать, исходя из ваших требований.
источник
В своем
ipython_config.py
файле найдите следующие строки# c.InteractiveShellApp.matplotlib = None
а также
# c.InteractiveShellApp.pylab = None
и раскомментируйте их. Затем перейдите
None
на бэкэнд, который вы используете (я использую'qt4'
), и сохраните файл. Перезапустите IPython, и должны быть загружены matplotlib и pylab - вы можете использоватьdir()
команду, чтобы проверить, какие модули находятся в глобальном пространстве имен.источник
В (текущем) IPython 3.2.0 (Python 2 или 3)
Откройте файл конфигурации в скрытой папке .ipython
добавьте следующую строку
c.IPKernelApp.matplotlib = 'inline'
добавить это сразу после
источник
В дополнение к @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, так и в сеансах ноутбука.
источник
Создайте любой
.py
файл,~/.ipython/profile_default/startup/
содержащийget_ipython().magic('matplotlib inline')
источник