1. ホーム
  2. matplotlib

[解決済み] matplotlib でプロットをクリアするために cla()、clf() または close() をいつ使うか?

2022-02-18 19:28:50

質問

Matplotlibには以下のような関数があります。

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

ドキュメントには、これらの関数の違いが何なのか、あまり書かれていないんだ。それぞれの関数はいつ使うべきで、具体的に何をするものなのでしょうか?

どのように解決するのですか?

matplotlib は、figure window が多くの軸からなる図を含む階層的な順序を使用するため、これらはすべて異なることを行います。さらに、pyplot インターフェースからの関数と Figure クラスがあります。以下、両方のケースについて説明します。

pyplot インターフェース

pyplot は、matplotlib を機能的に使用できるようにするためのいくつかの関数を集めたモジュールです。ここでは、以下のように仮定します。 pyplot としてインポートされています。 import matplotlib.pyplot as plt . この場合、ものを削除するコマンドは3種類あります。

参照 matplotlib.pyplot 機能です。

plt.cla() 軸をクリアする つまり、現在の図の中で現在アクティブな軸を指定します。他の軸はそのままにしておきます。

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

plt.close() ウィンドウを閉じる 特に指定がなければ、カレントウィンドウになります。

どの機能が最適なのかは、使用する場面によって異なります。

その close() 関数では、さらに、どのウィンドウを閉じるかを指定することができます。引数には、ウィンドウを作成したときに figure(number_or_name) または、図のインスタンスである fig を使用して取得された、すなわち fig = figure() . に引数を与えない場合は close() 現在アクティブなウィンドウは閉じられます。さらに、次の構文があります。 close('all') で、すべての図形を閉じます。

Figure クラスのメソッド

さらに Figure クラスは、図形をクリアするためのメソッドを提供します。 以下では fig のインスタンスです。 Figure :

fig.clf() 図形の全体を消去します . この呼び出しは、次のものと同等です。 plt.clf() ただし fig は現在の図形です。

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

ただし del fig は、関連する図ウィンドウを閉じません。私の知る限りでは、図ウィンドウを閉じる唯一の方法は plt.close(fig) のようになります。