如何在GridSpec中居中框?

时间:2015-02-09 10:59:24

标签: python image matplotlib centering

如何将图像置于GridSpec分割帧中?我有下面的图像,我想让上面的图片居中。

Picture to be centered

相关代码(部分代码,尤其是单位,来自AMUSE框架):

lim = [-5,5] | units.kpc
bins = [100,100]
xyrange = [[-5,5],[-5,5]]
cmap = cm.jet

hist2d_xy,_,_ = np.histogram2d(particles.x.value_in(units.kpc),particles.y.value_in(units.kpc),bins=bins, range=xyrange)
hist2d_xz,_,_ = np.histogram2d(particles.x.value_in(units.kpc),particles.z.value_in(units.kpc),bins=bins, range=xyrange)

maximum_value = max([hist2d_xy.max(),hist2d_xz.max()])

gs = gridspec.GridSpec(2,1, height_ratios=[3,1])
ax1 = pyplot.subplot(gs[0])


pyplot.imshow(np.flipud(hist2d_xy.T),cmap=cmap,extent = np.array(xyrange).flatten(), interpolation='none',norm=colors.LogNorm(vmin=1,vmax=maximum_value))
cbar = pyplot.colorbar()

ax2 = pyplot.subplot(gs[1])
pyplot.imshow(np.flipud(hist2d_xz.T),cmap=cmap,extent = np.array(xyrange).flatten(), interpolation='none',norm=colors.LogNorm(vmin=1,vmax=maximum_value))
pyplot.ylim([-1,1])
cbar = pyplot.colorbar()
pyplot.tight_layout()
pyplot.savefig(file_location_for_pictures+'test_%.2f.png' %threshold)
pyplot.close()

1 个答案:

答案 0 :(得分:0)

我替换了

gs = gridspec.GridSpec(2,1, height_ratios=[3,1])
ax1 = pyplot.subplot(gs[0])

ax2 = pyplot.subplot(gs[1])

ax1 = pyplot.subplot2grid((6,6), (0,1), colspan = 4, rowspan = 4)

ax2 = pyplot.subplot2grid((6,6), (4,0), colspan = 6, rowspan = 2)

(在正确的地方),它现在生成这张图片(编辑颜色并添加了一些文字,但想法很清楚):

Centered upper picture