IPython Notebook을 시작할 때마다 실행하는 첫 번째 명령은
%matplotlib inline
IPython을 시작할 때 자동으로이 모드가되도록 구성 파일을 변경하는 방법이 있습니까?
IPython Notebook을 시작할 때마다 실행하는 첫 번째 명령은
%matplotlib inline
IPython을 시작할 때 자동으로이 모드가되도록 구성 파일을 변경하는 방법이 있습니까?
ipython --matplotlib
더 낫다
답변:
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"
%pylab
인라인 플로팅을 얻기 위해를 사용 하지 않는 것이 좋습니다 .
그것은 당신이 필요로하지 않는 모든 종류의 총알을 당신의 네임 스페이스에 도입합니다.
%matplotlib
반면에 네임 스페이스를 삽입하지 않고도 인라인 플로팅이 가능합니다. matplotlib 및 numpy를 가져 오려면 명시 적 호출을 수행해야합니다.
import matplotlib.pyplot as plt
import numpy as np
수입품을 명시 적으로 입력하는 작은 비용은 이제 재현 가능한 코드가 있다는 사실로 완전히 극복되어야합니다.
%matplotlib
적용되는 matplotlib 백엔드를 설정했는지 여부 또는 기본 백엔드를 설정 하고 자동으로 설정 하여 즉시 사용할 수 있는지 여부는 확실하지 않습니다 . iPython 환경.
matplotlib
vs pylab
에 관한 @Kyle Kelley의 편집에 추가하기 위해 iPython 은 프로파일을 사용하여 시작할 때마다 임의의 파이썬 코드를 자동으로 실행하는 것을 매우 쉽게 만듭니다. 나는 당신이 자동으로 일반적인 수입이 좋아 할 프로필이 꽤 일반적인 생각 import numpy as np; import pandas as pd; import matplotlib.pyplot as plt
: 등 NB을 pylab
것입니다 하지 와 같은 것 pyplot
. 그것을 깨닫는 데 한 달이 걸렸을 것입니다.
c.InteractiveShellApp.matplotlib = "inline"
원하는 것은 명령 줄에서 다음을 실행하는 것입니다.
ipython notebook --matplotlib=inline
매번 cmd 줄에 입력하는 것을 좋아하지 않는다면 별칭을 만들어 자동으로 수행 할 수 있습니다.
matplotlib=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
하고 아래 명령을 실행하여 프로젝트의 커널을 찾을 수 있기 때문에 이것은 큰 문제가 아닙니다.
$ jupyter kernelspec list
Available kernels:
python3 /Users/tarunlalwani/Documents/Projects/SO/notebookinline/bin/../share/jupyter/kernels/python3
이것은 커널 폴더의 경로를 제공합니다. 이제 /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'
그러나이 접근 방식의 단점은 이것이 파이썬을 사용하는 모든 환경에 글로벌 영향을 미친다는 것입니다. 한 번의 변경으로 환경 전반에서 공통된 동작을 유지하려는 경우에도 이점으로 간주 할 수 있습니다.
따라서 요구 사항에 따라 사용할 접근 방식을 선택하십시오.
@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 및 노트북 세션 모두에서 작동합니다.