10

我创建了一个软件来进行信号分析。有多个函数,每个函数最终显示一个复杂的图形,包含标签、绘图、axhspan、axvspan 等……通常,这些函数是单独调用的。我的每个函数都返回一个图形对象,例如,我可以将其保存为 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

现在,我想创建一种“摘要图”,通过进行元分析,将多个图合并在一起,并将它们保存在最终的 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)
4

1 回答 1

11

您可以将多个绘图与 matplotlib.pyplot.subplot 结合起来。如需对布局进行更多控制,请查看GridSpec

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

gridspec 实例提供返回 SubplotSpec 实例的类数组(2d 或 1d)索引。对于跨越多个单元格的 SubplotSpec,请使用 slice。

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

在此处输入图像描述

于 2013-01-18T18:22:20.307 回答