回答:
%matplotlib
ある魔法機能 IPythonでは。ここでは、関連するドキュメントを引用して、便宜上お読みいただけるようにします。
IPythonには、コマンドラインスタイルの構文で呼び出すことができる事前定義された「マジック関数」のセットがあります。マジックには、ライン指向とセル指向の2種類があります。ラインマジックの前には%文字が付いており、OSコマンドライン呼び出しと同じように機能します。これらは、引数として行の残りの部分を取得します。引数は、括弧や引用符なしで渡されます。ラインマジックは結果を返すことができ、割り当ての右側で使用できます。セルマジックの前には、2つの%%が付けられます。セルマジックは、行の残りの部分だけでなく、その下の行も別の引数として引数として取得する関数です。
%matplotlib inline
matplotlibのバックエンドを「インライン」バックエンドに設定します。
このバックエンドでは、プロットコマンドの出力は、Jupyterノートブックなどのフロントエンド内のインラインで、それを生成したコードセルのすぐ下に表示されます。結果のプロットは、ノートブックドキュメントにも保存されます。
'inline'バックエンドを使用すると、matplotlibグラフがノートブックのコードの横に含まれます。IPython Notebook matplotlibプロットをインラインで作成する方法も読む価値があります。あなたのコードでそれを使用する方法の参考のために。
インタラクティビティも必要な場合は、ここで説明するように、(IPython 3.xで)nbaggバックエンドを使用できます。%matplotlib notebook
IPythonを実行している場合、 %matplotlib inline
、プロット出力が表示され、ノートブック内に保存されます。
ドキュメントによると
これを設定するには、プロットまたはインポートを
matplotlib
実行する前に、を実行する必要があり%matplotlib magic command
ます。これは、IPythonが正しく連携して動作するために必要な舞台裏のセットアップを実行しますmatplotlib
ます。ただし、実際にはPythonのインポートコマンドは実行されません。つまり、名前空間に名前は追加されません。IPythonによって提供される特に興味深いバックエンドは
inline
バックエンドです。これは、Jupyter NotebookとJupyter QtConsoleでのみ使用できます。次のように呼び出すことができます。%matplotlib inline
このバックエンドでは、プロットコマンドの出力は、Jupyterノートブックなどのフロントエンド内のインラインで、それを生成したコードセルのすぐ下に表示されます。結果のプロットは、ノートブックドキュメントにも保存されます。
Jupyterノートブックにプロットを追加する場合%matplotlib inline
は、標準のソリューションです。また、matplotlib
Jupyter内でインタラクティブに使用される他の魔法のコマンドがあります。
%matplotlib
:plt
プロットコマンドを実行すると、Figureウィンドウが開き、さらにコマンドを実行してプロットを更新できます。一部の変更は自動的に描画されません。強制的に更新するには、plt.draw()
%matplotlib notebook
:ノートブック内に埋め込まれたインタラクティブなプロットにつながり、図をズームしてサイズを変更できます
%matplotlib inline
:ノートブックに静止画像のみを描画します
IPython 5.0とmatplotlib 2.0以降では、IPythonの特定の魔法の使用を回避し、IPythonの
matplotlib.pyplot.ion()/matplotlib.pyplot.ioff()
外部で作業することの利点も備えています。
inline
でない限り、プロットは外側のウィンドウで生成され、ノートブックに表示するにはdisplay()を使用する必要があります。
バックエンドがわからない場合は、https: //matplotlib.org/tutorials/introductory/usage.html#backendsを参照してください。
一部の人々は、pythonシェルから対話的にmatplotlibを使用し、コマンドを入力すると、プロットウィンドウがポップアップします。一部の人々は、Jupyterノートブックを実行して、迅速なデータ分析のためにインラインプロットを描画します。リッチアプリケーションを構築するためにwxpythonやpygtkなどのグラフィカルユーザーインターフェイスにmatplotlibを埋め込むものもあります。バッチスクリプトでmatplotlibを使用して数値シミュレーションからポストスクリプトイメージを生成する人もいれば、Webアプリケーションサーバーを実行して動的にグラフを提供する人もいます。これらのすべての使用例をサポートするために、matplotlibは異なる出力を対象とすることができ、これらの各機能はバックエンドと呼ばれます。「フロントエンド」はユーザー向けのコード、つまりプロットコードですが、「バックエンド」は図を作成するために舞台裏ですべてのハードワークを実行します。
したがって、%matplotlib inlineと入力すると、インラインバックエンドがアクティブになります。以前の投稿で説明したように:
このバックエンドでは、プロットコマンドの出力は、Jupyterノートブックなどのフロントエンド内のインラインで、それを生成したコードセルのすぐ下に表示されます。結果のプロットは、ノートブックドキュメントにも保存されます。
TL; DR
%matplotlib inline
-出力をインラインで表示しますIPythonカーネルには、コードを実行してプロットを表示する機能があります。IPythonカーネルは、matplotlibプロットライブラリとシームレスに連携してこの機能を提供するように設計されています。
%matplotlib
IPythonがと連携して正しく動作するために必要な舞台裏の設定を実行する魔法のコマンドmatplotlib
です。Pythonインポートコマンドは実行されません。つまり、名前空間に名前は追加されません。
%matplotlib
(Jupyter NotebookとJupyter QtConsoleでのみ利用可能)
%matplotlib inline
(有効な値'GTK3Agg', 'GTK3Cairo', 'MacOSX', 'nbAgg', 'Qt4Agg', 'Qt4Cairo', 'Qt5Agg', 'Qt5Cairo', 'TkAgg', 'TkCairo', 'WebAgg', 'WX', 'WXAgg', 'WXCairo', 'agg', 'cairo', 'pdf', 'pgf', 'ps', 'svg', 'template'
)
%matplotlib gtk
例-GTK3Agg-GTK 3.xキャンバスへのAggレンダリング(PyGObjectおよびpycairoまたはcairocffiが必要)。
matplotlibインタラクティブバックエンドの詳細:こちら
で開始する
IPython 5.0
とmatplotlib 2.0
、IPythonの特定の魔法の使用を回避し、IPythonの 外部で作業する利点もあるmatplotlib.pyplot.ion()
/matplotlib.pyplot.ioff()
を使用できます。
それを書くことは必須ではありません。(%matplotlib
)魔法の機能がなくてもうまくいきました。私は、Anacondaに付属しているSypderコンパイラーを使用しています。