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.