私はサブプロットの5x4グリッドを作成しようとしていますが、例を見ると、最善の方法は次のように思われます。
import matplotlib.pyplot as plt
plt.figure()
plt.subplot(221)
ここで、サブプロット(22)の最初の2つの数字は、それが2x2グリッドであることを示し、3番目の数字は4つのうちのどれを作成しているかを示します。しかし、私がこれを試したとき、私は上に行かなければなりませんでした:
plt.subplot(5420)
そして私はエラーが発生しました:
ValueError: Integer subplot specification must be a three digit number. Not 4
つまり、10を超えるサブプロットを作成できないということですか、それを回避する方法はありますか、それとも私はそれがどのように機能するかを誤解していますか?
前もって感謝します。
あなたはおそらく GridSpec を探しています。グリッドのサイズ(5,4)と各プロットの位置(行= 0、列= 2、つまり-0,2)を指定できます。次の例を確認してください。
import matplotlib.pyplot as plt
plt.figure(0)
ax1 = plt.subplot2grid((5,4), (0,0))
ax2 = plt.subplot2grid((5,4), (1,1))
ax3 = plt.subplot2grid((5,4), (2, 2))
ax4 = plt.subplot2grid((5,4), (3, 3))
ax5 = plt.subplot2grid((5,4), (4, 0))
plt.show()
、その結果:
ネストされたループを作成して完全なグリッドを作成する必要があります。
import matplotlib.pyplot as plt
plt.figure(0)
for i in range(5):
for j in range(4):
plt.subplot2grid((5,4), (i,j))
plt.show()
、これを取得します:
プロットは、他のサブプロットと同じように機能します(作成した軸から直接呼び出します)。
import matplotlib.pyplot as plt
import numpy as np
plt.figure(0)
plots = []
for i in range(5):
for j in range(4):
ax = plt.subplot2grid((5,4), (i,j))
ax.scatter(range(20),range(20)+np.random.randint(-5,5,20))
plt.show()
、結果として:
プロットにさまざまなサイズを指定できることに注意してください(各プロットの列と行の数を示します)。
import matplotlib.pyplot as plt
plt.figure(0)
ax1 = plt.subplot2grid((3,3), (0,0), colspan=3)
ax2 = plt.subplot2grid((3,3), (1,0), colspan=2)
ax3 = plt.subplot2grid((3,3), (1, 2), rowspan=2)
ax4 = plt.subplot2grid((3,3), (2, 0))
ax5 = plt.subplot2grid((3,3), (2, 1))
plt.show()
したがって、:
最初に示したリンクには、他のものの中でも特にラベルを削除する例があります。