Matplotlib-object-oriented-interface

提供:Dev Guides
移動先:案内検索

Matplotlib-オブジェクト指向インターフェース

*matplotlib.pyplot* モジュールを使用して簡単にプロットを生成することは簡単ですが、オブジェクト指向のアプローチを使用することをお勧めします。これにより、プロットをより制御およびカスタマイズできるようになります。 ほとんどの関数は、 *matplotlib.axes.Axes* クラスでも使用できます。

より正式なオブジェクト指向のメソッドを使用する背後にある主なアイデアは、Figureオブジェクトを作成し、そのオブジェクトからメソッドまたは属性を呼び出すだけです。 このアプローチは、複数のプロットがあるキャンバスをより適切に処理するのに役立ちます。

オブジェクト指向インターフェイスでは、PyplotはFigure作成などのいくつかの機能にのみ使用され、ユーザーはFigureおよびAxesオブジェクトを明示的に作成および追跡します。 このレベルでは、ユーザーはPyplotを使用して図を作成し、これらの図を通じて1つ以上の軸オブジェクトを作成できます。 これらのAxesオブジェクトは、ほとんどのプロットアクションに使用されます。

まず、空のキャンバスを提供するFigureインスタンスを作成します。

fig = plt.figure()

次に、Figureに軸を追加します。 * add_axes()*メソッドには、Figureの左、下、幅、高さに対応する4つの要素のリストオブジェクトが必要です。 各番号は0から1の間でなければなりません-

ax=fig.add_axes([0,0,1,1])

タイトルと同様にxとy軸のラベルを設定します-

ax.set_title("sine wave")
ax.set_xlabel('angle')
ax.set_ylabel('sine')

Axesオブジェクトのplot()メソッドを呼び出します。

ax.plot(x,y)

Jupyterノートブックを使用している場合、%matplotlibインラインディレクティブを発行する必要があります。 pyplotモジュールのotherwistshow()関数はプロットを表示します。

次のコードを実行することを検討してください-

from matplotlib import pyplot as plt
import numpy as np
import math
x = np.arange(0, math.pi*2, 0.05)
y = np.sin(x)
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.plot(x,y)
ax.set_title("sine wave")
ax.set_xlabel('angle')
ax.set_ylabel('sine')
plt.show()

出力

上記のコード行は、次の出力を生成します-

軸メソッドの追加

Jupyterノートブックで実行した場合と同じコードは、次のように出力を示します-

Jupyter Notebook Output