Matplotlibでサブプロットのグループ(3 x 2など)を作成していますが、データセットが6個未満です。残りのサブプロットを空白にするにはどうすればよいですか?
配置は次のようになります。
+----+----+
| 0,0| 0,1|
+----+----+
| 1,0| 1,1|
+----+----+
| 2,0| 2,1|
+----+----+
これは複数のページで継続する場合がありますが、最終ページでは、たとえば、2,1ボックスに5つのデータセットが空になります。ただし、図は次のように宣言しています。
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プロットの軸テキストを非表示にする .
much改善された subplot interface は、この質問が最初に尋ねられてから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()
Axes.set_visible()メソッドを使用してサブプロットを非表示にすることもできます。
import matplotlib.pyplot as plt
import pandas as pd
fig = plt.figure()
data = pd.read_csv('sampledata.csv')
for i in range(0,6):
ax = fig.add_subplot(3,2,i+1)
ax.plot(range(1,6), data[i])
if i == 5:
ax.set_visible(False)
必要なときにサブプロットを作成するオプションはありますか?
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")