web-dev-qa-db-ja.com

"%matplotlibインライン"の目的

誰かが私に%matplotlib inlineの使用は正確に何であるか説明してもらえますか?

246
Rishabh

%matplotlibはIPythonでは マジック関数 です。私はあなたが便宜のために読むためにここに関連文書を引用します:

IPythonには、コマンドラインスタイルの構文で呼び出すことができる一連の定義済みの「マジック関数」があります。マジックには、ライン志向とセル志向の2種類があります。ラインマジックは%文字で始まり、OSのコマンドライン呼び出しと同じように機能します。それらは引数として行の残りの部分を取得します。引数は括弧や引用符なしで渡されます。ラインマジックは結果を返すことができ、代入の右側で使うことができます。セルマジックの前には二重の%%が付いており、それらは行の残りの部分だけでなく、その下の行を別の引数として引数として受け取る関数です。

%matplotlib inlinematplotlibのバックエンドを 'インライン'バックエンドに設定します

このバックエンドでは、プロットコマンドの出力は、Jupyterノートブックのようにフロントエンド内でインラインに表示され、それを生成したコードセルのすぐ下に表示されます。結果のプロットもノートブックドキュメントに保存されます。

'インライン'バックエンドを使うとき、あなたのmatplotlibグラフはあなたのノートブックのコードの隣に含まれるでしょう。IPythonノートブックのmatplotlibプロットをインラインにする方法を自分のコードで使用する方法についての参考としてお読みください。

もしあなたが双方向性も欲しいなら、 here で説明されているように、 nbaggバックエンド%matplotlib notebookと共に(IPython 3.xで)使うことができます。

160
Aurora0001

IPythonを実行している場合、%matplotlib inlineを使用するとプロットの出力が表示され、ノートブックに保存されます。

ドキュメント によると/

これを設定するには、matplotlibのプロットまたはインポートを実行する前に、%matplotlib magic commandを実行する必要があります。これはIPythonがmatplotlibと正しく連携して動作するために必要な舞台裏のセットアップを実行します。ただし、実際にはPythonのimportコマンドは実行されません。つまり、名前空間に名前は追加されません。

IPythonによって提供される特に興味深いバックエンドはinlineバックエンドです。これはJupyter NotebookとJupyter QtConsoleでのみ利用可能です。次のようにして呼び出すことができます。

%matplotlib inline

このバックエンドでは、プロットコマンドの出力は、Jupyterノートブックのようにフロントエンド内でインラインに表示され、それを生成したコードセルのすぐ下に表示されます。結果のプロットもノートブックドキュメントに保存されます。

47
matusko

Jupyterノートブックにプロットを追加したい場合は、%matplotlib inlineが標準的な解決策です。そして他にもJupyter内で対話的にmatplotlibを使う魔法のコマンドがあります。

%matplotlib:任意のplt plotコマンドはfigureウィンドウを開くようになります、そしてプロットを更新するためにさらなるコマンドを実行することができます。一部の変更は自動的には描画されません。強制的に更新するには、plt.draw()を使用します。

%matplotlib notebook:ノートブックの中に埋め込まれたインタラクティブなプロットを導きます、あなたは図をズームしてサイズを変更することができます

%matplotlib inline:ノートブックには静止画像のみを描く

7
Yossarian42