2013-01-18 43 views
7

我創建了一個軟件來做信號分析。有多種功能,每種功能最終都會顯示一個複雜的圖形,其中包含標籤,繪圖,axhspan,axvspan等等......通常,這些功能分別被調用。我的每個函數都返回一個數字對象,例如我可以用pdf保存。現在如何在一種佈局中安排多個pyplot數字?

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) 
+0

將[該解決方案]爲你(http://stackoverflow.com/a/11172032/1984421)的工作? –

回答

9

您可以將幾個地塊與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]) 

enter image description here

+2

對於任何閱讀此內容的人:如果您喜歡**像面向對象的**方法,可以使用'ax1 = fig.add_subplot(gs [0,:])'等。 –