IPython Notebookを起動するたびに、最初に実行するコマンドは
%matplotlib inline
IPythonを起動すると自動的にこのモードになるように、構成ファイルを変更する方法はありますか?
IPython Notebookを起動するたびに、最初に実行するコマンドは
%matplotlib inline
IPythonを起動すると自動的にこのモードになるように、構成ファイルを変更する方法はありますか?
ipython --matplotlib
より良い
回答:
IPythonには、構成用のプロファイルがあります~/.ipython/profile_*
。デフォルトのプロファイルはと呼ばれprofile_default
ます。このフォルダー内には、2つの主要な構成ファイルがあります。
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
、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"
コマンドラインから次のコマンドを実行するとよいでしょう。
ipython notebook --matplotlib=inline
毎回cmd行に入力したくない場合は、エイリアスを作成してそれを行うことができます。
--matplotlib inline
--pylabのものに変更して削除してください。ipython devel whyのこの投稿を参照してください:carreau.github.io/posts/10-No-PyLab-Thanks.ipynb.html
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'
しかし、このアプローチの欠点は、これが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セッションとノートブックセッションの両方で機能します。