Python matplotlib子绘图网格创建两个不同的画布,而不是一个

Python matplotlib子绘图网格创建两个不同的画布,而不是一个,python,matplotlib,Python,Matplotlib,我试着按照这个示例创建子地块的网格: 但是我的代码在两个不同的画布中绘制两行图,而不是在一个画布中(图像是正确的)。有人知道为什么吗 这是我的代码摘录: alphas = [45, 75] numalp = len(alphas) angles = np.linspace(pi/12, pi/2, num=10) numobs = len(angles) axisNum = 0 for a in alphas: #[some operations]

我试着按照这个示例创建子地块的网格:

但是我的代码在两个不同的画布中绘制两行图,而不是在一个画布中(图像是正确的)。有人知道为什么吗

这是我的代码摘录:

alphas = [45, 75]
numalp = len(alphas)

angles = np.linspace(pi/12, pi/2, num=10)
numobs = len(angles)

axisNum = 0

for a in alphas:

          #[some operations]

          for obsangl in angles:

                       #[some operations]

                       axisNum += 1
                       axii = plt.subplot(numalp, numobs, axisNum)
                       plt.errorbar(g, Pgamma, yerr = ePgamma, color = 'green', fmt = '.')                
                       axii1 = axii.twinx()                
                       plt.plot(g, lightcurva, 'b-')
                       axii.set_yticklabels([])
                       axii.set_xticklabels([])                
                       axii1.set_yticklabels([])
                       axii1.set_xticklabels([])   

对于in-alphas循环,在
中是否有
plt.figure()
?(在你的
#[某些操作]
)如果是这样,那么每次你调用它你都会得到一个新的图形,除非你指定了一个图形编号。例如,以下内容将创建两个图形,每个图形有一行:

for  a in alphas:
    fig=plt.figure()
    for obsangl in angles:
        # etc.
如果是这种情况,则要更正它,您可以在所有循环之前定义图形:

fig=plt.figure()
for a in alphas:
    for obsang1 in angles:
        # etc.
也可以指定地物编号:

for  a in alphas:
    fig=plt.figure(1)  # Specifies Figure 1
    for obsangl in angles:
        # etc.