matplotlib中的Equal Height子图

时间:2014-10-07 00:46:02

标签: python matplotlib

我有一个脚本可以生成两个相同数量的两个方面的图。它相当长,所以这只是相关的(我相信)部分。左手图由函数" plot_shearsticks2"

调用

根据我绘制的数据,左手图的尺寸可能略有不同,但我希望两者总是具有相同的高度,如果左手图的宽度较大,那么“'很好(通常它应该)。以下是相关部分:

    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中的选项,似乎没有任何效果 - 由于某种原因,左侧总是较小。知道如何让它们达到相同的高度吗?

2 个答案:

答案 0 :(得分: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函数相比,这为您提供了明显的优势。

答案 1 :(得分:1)

使用GridSpec重做所有内容,并使用gs = gridspec.GridSpec(1,2,height_ratios=[1],width_ratios=[ratioxy,1])指定绘图高度,定义ratioxy ratioxy=widthx/heighty