1
1

More than 1 year has passed since last update.

【matplotlib】サブプロットの余分なプロットを削除する3つの方法

Posted at

概要

matplotlibでグラフを作るとき、subplots()は便利なのですが、下図のように余分なプロットがあり削除したい場合があると思います。筆者もその場面に遭遇し、そのときに色々と調べたので、解決方法を3つ紹介します。
image.png

実装

Google Colabで作成した本記事のコードは、こちらにあります。

方法

2×2plotで右下のプロットを消す場合のコードで簡単に紹介します。おすすめ度は3段階で表示しています。
結論としては、delaxes(ax)が一番良くおすすめ度は3です。というのも、それ専用のモジュールだからです。
ax.set_visible(False)は、他にも使い道があるのでおすすめ度は2です。
ax.set_axis_off()は、軸のみを削除しています。なので、このコードの前後でプロットしていた場合、プロット情報は表示される(プロットされていなくてもプロットの領域は確保される)ので、期待する挙動にならない可能性があるため、おすすめ度は1です。

delaxes(ax)(おすすめ度★★★)

import matplotlib.pyplot as plt

fig, axs = plt.subplots(2, 2)
fig.delaxes(axs[1, 1])

ax.set_visible(False)(おすすめ度★★)

import matplotlib.pyplot as plt

fig, axs = plt.subplots(2, 2)
axs[1, 1].set_visible(False)

ax.set_axis_off()(おすすめ度★)

※プロットの領域は確保されるので、上の2つの手法と厳密には異なります。

import matplotlib.pyplot as plt

fig, axs = plt.subplots(2, 2)
axs[1, 1].set_axis_off()

まとめ

matplotlibのサブプロットを消す方法は色々とあるようですが、好み、おすすめ度、状況などによって適当に選んで快適に使いこなしましょう。

参考資料

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1