web-dev-qa-db-ja.com

Matplotlibでサブプロットをクリアする

図でいくつかのサブプロット_fig1_を作成しました。

_ax = fig1.add_subplot(221)
_

それから私は各サブプロットにものをプロットします

_im=ax.plot(x,y)
_

を介していくつかの軸ラベルを追加します

_ax.set_xlabel('xlabel')
_

次に、 matplotlibのプロットをクリアするためにcla()、clf()、またはclose()をいつ使用するかで説明されているように、特定のサブプロットを完全にクリアしますか? 。ただし、問題は、ax.cla()およびax.clear()が、軸、軸目盛りラベルなどを削除せずに、プロットからデータをクリアするだけのように見えることです。一方、plt.clf()図全体をクリアします。間に何かありますか?軸ラベルを含むサブプロットのすべてをクリアするclfのようなコマンド?または、コマンドを間違った方法で使用しただけですか?

7
Wolpertinger
  • ax.clear()は、軸をクリアします。つまり、作成されたばかりのように、軸からすべての設定とデータが削除され、軸が残ります。

  • ax.axis("off")は、すべての軸のスパインと目盛りラベルが非表示になるように、軸をオフにします。

  • ax.set_visible(False)は、その中にあるデータを含む完全なAxesを非表示にします。

  • ax.remove()は、FigureからAxesを削除します。

完全な例:

import matplotlib.pyplot as plt

fig,axes = plt.subplots(2,3)
for ax in axes.flat:
    ax.plot([2,3,1])

axes[0,1].clear()
axes[1,0].axis("off")
axes[1,1].set_visible(False)
axes[0,2].remove()

plt.show()

enter image description here