matplotlib - pyplot - plt clean python




matplotlibのプロットをクリアするためにcla()、clf()またはclose()を使用するタイミングは? (2)

Matplotlibは以下の機能を提供します:

cla()   # Clear axis
clf()   # Clear figure
close() # Close a figure window

ドキュメンテーションは、これらの機能の違いについて、多くの洞察を提供していません。 どの機能をいつ使うべきですか?


matplotlibはFigureウィンドウに複数の軸で構成されたFigureが含まれている階層的な順序を使用するため、これらはすべて異なる処理を行います。 さらに、pyplotインターフェイスの関数があり、 FigureクラスにはメソッドがありFigure 。 私は以下の両方のケースについて議論するつもりです。

パイプロインタフェース

pyplotは、機能的にmatplotlibを使用できるようにする2つの関数を集めるモジュールです。 ここでは、 pyplotimport matplotlib.pyplot as pltとしてimport matplotlib.pyplot as pltます。 この場合、削除するコマンドは3つあります。

plt.cla()は、現在のFigure内の現在アクティブなAxesをクリアします 。 それは他の軸を手つかずのままにします。

plt.clf()は、現在のFigure全体をすべての軸で消去しますが、他のプロットで再利用できるように、ウィンドウを開いたままにします。

plt.close()はウィンドウを閉じます 。そうでない場合は現在のウィンドウになります。

どちらの関数が最適かは、ユースケースによって異なります。

close()関数は、さらに、どのウィンドウを閉じなければならないかを指定することを可能にする。 引数は、 figure(number_or_name)を使用して作成されたときにウィンドウに与えられた番号または名前のいずれかであるか、またはfig = figure()を使用して取得されたFigureインスタンスfigなります。 close()に引数が与えられない場合、現在アクティブなウィンドウは閉じられます。 さらに、 close('all')という構文があり、すべての数字が閉じます。

図クラスのメソッド

さらに、 FigureクラスはFigureを消去するメソッドを提供します。 次のfigは、 figfigのインスタンスであると仮定しFigure

fig.clf()はFigure全体を消去します 。 この呼び出しは、 figが現在のFigureである場合にのみ、 plt.clf()と同等です。

fig.clear()fig.clear()の同義語です。

del figでさえ関連するFigureウィンドウを閉じることはないことに注意してください。 私が知っている限り、Figureウィンドウを閉じるための唯一の方法は、上記のようにplt.close(fig)を使用することです。








plot