使用颜色条时如何保持图像大小?

psk*_*shu 5 python plot image matplotlib colorbar

我正在尝试并排绘制同一图像的两个版本。当我绘制其中一张图像没有颜色条的图形时,它似乎具有正确的尺寸:

没有颜色条

但是当我向左侧图像添加颜色条时,它会以某种方式缩小图像:

缩小图像

这是我注释掉颜色条行的代码:

def plot_amaps(self, anisotropy_map, parallel):
        timepoint = self.t * self.timestep
        amap_directory = self.directory + "amaps/"
        fig = plt.figure(facecolor='w', dpi=180)

        ax1 = fig.add_subplot(121)
        fig.subplots_adjust(top=0.85)
        ax1.grid(False)
        txt = "Mean(r) = %.3f SD(r)= %.3f t=%dmin"
        txt = txt %(self.mean, self.sd, timepoint)
        ax1.set_title(txt)

        amap = ax1.imshow(anisotropy_map, cmap="jet", clim = self.clim)
        #divider = make_axes_locatable(ax1)
        #cax = divider.append_axes('right', size='5%', pad=0.05)
        #fig.colorbar(amap, cax=cax)

        ax2 = fig.add_subplot(122)
        ax2.set_title("Intensity image", fontsize=10)
        ax2.imshow(parallel, cmap="gray")
        ax2.grid(False)
        ax1.axis('off')
        ax2.axis('off')

        if self.save is True:
            self.make_plot_dir(amap_directory)
            name = self.cell + "_time_"+str(timepoint)
            plt.savefig(amap_directory+name+self.saveformat, bbox_inches='tight')
        else:
            plt.show()
        plt.close('all')
Run Code Online (Sandbox Code Playgroud)

我做错了什么,如何确保两个图像的大小相同?

Imp*_*est 5

使用时

divider = make_axes_locatable(ax1)
cax = divider.append_axes('right', size='5%', pad=0.05)
Run Code Online (Sandbox Code Playgroud)

您明确要求轴小 5%。因此,如果您不希望这样,则不应使用 为颜色条创建轴make_axes_locatable

相反,您可以简单地使用以下命令在图形上的任何点创建轴

cax = fig.add_axes([left, bottom, width, height])
Run Code Online (Sandbox Code Playgroud)

其中left, bottom, width, height的数字单位范围为 0 到 1。然后向其中添加颜色条。
如果您希望颜色条位于中间,您可以预先使用以下命令腾出一些空间

plt.subplots_adjust(wspace=0.3)
Run Code Online (Sandbox Code Playgroud)

当然,您必须对这些数字进行一些实验。