105

matplotlib でサブプロットのグループ (たとえば、3 x 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 のスペースには、目盛りとラベルを含む軸の既定のセットがあります。そのスペースをプログラムで空白にして軸をなくすにはどうすればよいですか?

4

5 に答える 5

179

必要のない軸はいつでも非表示にできます。たとえば、次のコードは 6 番目の軸を完全にオフにします。

import matplotlib.pyplot as plt

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

plt.show()

次の図になります。

グラフの 3x2 グリッドの画像で、右下のセルにグラフが表示されていない

または、軸を保持しながらすべての軸の装飾 (目盛りとラベルなど) を非表示にする方法については、matplotlib プロットで軸テキストを非表示にするという質問に対する受け入れられた回答を参照してください。

于 2012-04-05T21:03:32.777 に答える
28

この質問が最初に尋ねられて以来、大幅に改善されたサブプロット インターフェイスが matplotlib に追加されました。ここでは、エクストラを非表示にすることなく、必要なサブプロットを正確に作成できます。さらに、サブプロットは追加の行または列にまたがることができます。

import pylab as plt

ax1 = plt.subplot2grid((3,2),(0, 0))
ax2 = plt.subplot2grid((3,2),(0, 1))
ax3 = plt.subplot2grid((3,2),(1, 0))
ax4 = plt.subplot2grid((3,2),(1, 1))
ax5 = plt.subplot2grid((3,2),(2, 0))

plt.show()

ここに画像の説明を入力

于 2013-01-15T16:12:45.847 に答える
2

必要なときにサブプロットを作成するオプションはありますか?

import matplotlib
matplotlib.use("pdf")
import matplotlib.pyplot as plt

plt.figure()
plt.gcf().add_subplot(421)
plt.fill([0,0,1,1],[0,1,1,0])
plt.gcf().add_subplot(422)
plt.fill([0,0,1,1],[0,1,1,0])
plt.gcf().add_subplot(423)
plt.fill([0,0,1,1],[0,1,1,0])
plt.suptitle("Figure Title")
plt.gcf().subplots_adjust(hspace=0.5,wspace=0.5)
plt.savefig("outfig")
于 2012-04-05T20:42:27.140 に答える
0

(2,1) に配置されたプロットを削除するには、次を使用できます

import matplotlib.pyplot as plt
cfig,ax = plt.subplots(3,2)
cfig.delaxes(ax.flatten()[5])

于 2021-08-27T22:14:37.983 に答える