1. ホーム
  2. python

[解決済み] matplotlibで空白のサブプロットを作成するには?

2022-12-29 08:45:31

質問

matplotlibで3×2のサブプロットを作っているのですが、データセットが6個に足りません。残りのサブプロットを空白にするにはどうしたらよいでしょうか?

配置はこのような感じです。

+----+----+
| 0,0| 0,1|
+----+----+
| 1,0| 1,1|
+----+----+
| 2,0| 2,1|
+----+----+

これが何ページか続くかもしれませんが、最終ページでは、例えば5つのデータセットがあり、2,1のボックスは空っぽになります。しかし、私はその図をこう宣言しました。

cfig,ax = plt.subplots(3,2)

サブプロット2,1のスペースには、目盛りとラベルを持つ軸のデフォルトのセットがあるわけです。どのようにプログラム的にそのスペースを空白にし、軸をなくすことができるでしょうか。

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

不要な軸は常に非表示にすることができます。例えば、以下のコードでは、6番目の軸を完全にオフにします。

import matplotlib.pyplot as plt

hf, ha = plt.subplots(3,2)
ha[-1, -1].axis('off')

plt.show()

となり、下図のような結果になります。

または、受け入れている回答を参照してください。 matplotlibのプロットで軸のテキストを非表示にする をご覧下さい。軸はそのままに、全ての軸の装飾(例えば目盛やラベル)を隠す方法です。