2014-10-07 100 views
0

我有一个脚本可以在同一数量的两个方面并排生成两个图。这是相当长的,所以这只是相关的(我相信)部分。左侧的曲线由函数“plot_shearsticks2”调用matplotlib中的等高子图解

根据我要绘制的数据,左侧绘图可能有稍微不同的尺寸,但我希望两个始终具有相同的高度,并且如果左边的一个更宽,这很好(通常它应该)。下面是相关部分:

import matplotlib.pyplot as plt 

    figr = plt.figure(i,figsize=(11, 5)) 

    fig=figr.add_subplot(121,aspect='equal') 
    figr.subplots_adjust(wspace=0.3) 
    shearplot = plot_shearsticks2(cat.data,[imoments[0],imoments[1],imoments[2],imoments[3],imoments[4]],scale_factor,'-k')  

    fig=figr.add_subplot(122,aspect='equal') 
    figr = plt.figure(i,figsize=(11, 5)) 

低于这个,也有似乎表明它是多高任何一些指令做出正确的手情节,但一无所获。修改add_subplot中的选项,似乎没有任何效果 - 由于某种原因,左侧总是较小。任何想法如何使他们平等的高度?

回答

1

我总是发现它更容易是axes功能。例如:

import pylab as pl 
pl.figure(figsize=(4,3)) 
pl.axes([0.2, 0.2, 0.75, 0.35 ]) 
pl.axes([0.2, 0.55, 0.75, 0.35 ]) 

这样你必须非常精确地控制轴属性的能力,甚至部分/完全覆盖一个在另一个之上。这使您比subplot功能显着优势。

0

结束了与GridSpec重做一切,并用gs = gridspec.GridSpec(1,2,height_ratios=[1],width_ratios=[ratioxy,1])指定情节的高度,具有与其ratioxy=widthx/heighty

定义 ratioxy