我怎样才能在一种布局中排列多个pyplot数字?

Van*_*ine 7 python matplotlib

我创建了一个软件来进行信号分析.有多个函数,每个函数最终显示一个包含标签,plot,axhspan,axvspan等的复杂图形......通常,这些函数是单独调用的.我的每个函数都返回一个figure对象,例如我可以用pdf保存.

def Myfunction1(self):
    fig = pyplot.figure()
    ...do somestuff, create my figure
    pyplot.show()
    fig.savefig('C:\MyFigurefolder\figure1.pdf', dpi=300)
    return fig

def Myfunction2(self):
    fig = pyplot.figure()
    ...do some other stuff, create my 2nd figure
    pyplot.show()
    fig.savefig('C:\MyFigurefolder\figure2.pdf', dpi=300)
    return fig
Run Code Online (Sandbox Code Playgroud)

现在,我想创建一种"总结图",通过进行元分析,将多个数字汇集在一起​​,并将它们保存在最终的pdf中.我真的不知道该怎么做.有没有办法使用整个图形对象(或者可能是多个单独的pdf)来做我的数字?

就像是:

def FinalFigure(self):

    final = A_Kind_Of_Layout_Or_A_Figure_or_something

    a=self.Myfunction1()
    b=self.Myfunction2()

    Action_to_arrange_a_and_b_like_gridspec

    final.savefig('C:\MyFigurefolder\FinalFigure.pdf', dpi=300)
Run Code Online (Sandbox Code Playgroud)

Hen*_*riV 10

您可以将几个图与matplotlib.pyplot.subplot结合使用.要获得对布局的更多控制,请查看GridSpec.

编辑:根据要求,链接教程的一个简短示例:

gridspec实例提供类似于数组(2d或1d)的索引,返回SubplotSpec实例.对于跨越多个单元的SubplotSpec,使用切片.

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
gs = gridspec.GridSpec(3, 3)
ax1 = plt.subplot(gs[0, :])
ax2 = plt.subplot(gs[1,:-1])
ax3 = plt.subplot(gs[1:, -1])
ax4 = plt.subplot(gs[-1,0])
ax5 = plt.subplot(gs[-1,-2])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 对于阅读此内容的任何人:如果你喜欢像我这样的**面向对象**方法,你可以使用`ax1 = fig.add_subplot(gs [0,:])`等. (3认同)