我有一个脚本可以生成两个相同数量的两个方面的图。它相当长,所以这只是相关的(我相信)部分。左手图由函数" 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中的选项,似乎没有任何效果 - 由于某种原因,左侧总是较小。知道如何让它们达到相同的高度吗?
答案 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