オブジェクトの名前
Matplotlibはオブジェクト指向であり、その主要なオブジェクトは図と軸です(名前はaxes
は少し誤解を招くとが、おそらく私だけです)。
フィギュアはキャンバスと考えることができます。通常、サイズや背景色などを指定します。キャンバスとフィギュアは、基本的に2つの方法で使用し、他のオブジェクト(主に軸ですが、ほとんどは軸)を配置します。また、テキストラベルなど)、その内容をsavefig
。で保存します。
あなたは考えることができ軸申し出ツール(例えばというスイスアーミーナイフのようなもの、便利なオブジェクトとして.plot
、.scatter
、.hist
ほとんどすべてのためなど)、。さまざまな方法のいずれかを使用して、1つ、2つ、...多くの軸を図形内に配置できます。
plt
インターフェース
PLT手続きインタフェースは、もともとMATLAB™インタフェース模倣するために開発されていますが、メインのオブジェクトへの直接参照を作成していない場合でも、オブジェクト指向のインターフェイスから実際に違いはありませんして(すなわち、図および軸)、これらのオブジェクトであります自動的にインスタンス化され、各pltメソッドは、基本的に、基になる基本オブジェクトのメソッドの1つの呼び出しに変換されます。たとえば、aplt.plot()
はaでhidden_axes.plot
、aplt.savefig
はahidden_figure.savefig
です。
すべての瞬間では、使用して、これらの隠されたオブジェクトのハンドルを持つことができるplt.gcf
とplt.gca
、オブジェクトのメソッドのいずれかがでメソッドに移植されていない場合、これは時々必要であるPLTの名前空間。
plt名前空間には、さまざまな方法で図と軸をインスタンス化するための便利なメソッドもいくつか含まれていることを付け加えたいと思います。
あなたの例
第一の方法
plt.plot(x, y)
ここではpltインターフェースのみを使用し、各図で使用できる軸は1つだけですが、これはデータの探索を行うときに必要なものであり、作業を完了するための簡単なレシピです...
2番目の方法
ax = plt.subplot()
ax.plot(x, y)
ここでは、plt名前空間で便利なメソッドを使用して、Axesオブジェクトに名前(およびハンドル)を付けていますが、非表示の図もあります。後でaxesオブジェクトを使用して、pltインターフェイスで実行できるすべてのことをプロットしたり、ヒストグラムを作成したりできますが、そのすべての属性にアクセスして、より自由に変更することもできます。
第三の道
figure = plt.figure()
new_plot = figure.add_subplot(111)
new_plot.plot(x, y)
ここでは、plt名前空間で便利なメソッドを使用してFigureのインスタンス化を開始し、後でオブジェクト指向インターフェイスのみを使用します。
pltコンビニエンスメソッド(matplotlib.figure.Figure
)をバイパスすることは可能ですが、インタラクティブなエクスペリエンスを向上させるために図を微調整する必要があります(結局のところ、これはコンビニエンスメソッドです)。
個人的な推奨事項
私は裸の提案plt.plot
、plt.scatter
おそらく使用して、インタラクティブセッションのコンテキストでIPythonをそのと%matplotlib
探索Jupyterノートブックのコンテキストでも、魔法のコマンド、および。
一方、オブジェクト指向のアプローチといくつかのplt
便利な方法は、進むべき道です。
- 微調整されたサブプロットのカスタマイズされた配置ですべてを一度に解決する永続的な問題がある場合は、
- 作成したプログラムのUIにMatplotlibを埋め込みたい場合。
これらの両極端の間には大きな灰色の領域があり、どうすればよいかと聞かれたら、「状況によって異なります」とだけ言います...