matplotlib子网格创建两个不同的画布,而不是on

2024-09-30 03:23:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着按照这个例子制作一个子批次的网格:

http://matplotlib.org/examples/pylab_examples/line_styles.html

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

这是我的代码摘录:

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([])   

Tags: 代码forlen画布pipltexamplesangles
1条回答
网友
1楼 · 发布于 2024-09-30 03:23:01

for a in alphas循环中有plt.figure()吗?(在您的#[some operations])如果是这样,那么每次调用它都会得到一个新的图形,除非您指定了一个图形编号。例如,下面将创建两个图形,每个图形有一行:

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

如果是这种情况,那么要纠正它,可以在所有循环之前定义图形:

^{pr2}$

也可以指定地物编号:

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

相关问题 更多 >

    热门问题