如何在Jupyter Notebook中调整Matplotlib绘图尺寸匹配色条高度
解决Matplotlib图片和色条高度对齐的问题
用默认subplot加色条的方式,会因为色条占用额外空间导致图片高度被压缩,和色条对不齐。可以用mpl_toolkits.axes_grid1里的make_axes_locatable工具,自动给每个图生成高度匹配的色条,完美解决这个问题。
修改后的可运行代码
import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1 import make_axes_locatable # 创建1行2列的子图,figsize可根据需求调整 fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5)) # 处理第一张图 im1 = ax1.imshow(train_images[0]) # 分割轴,准备添加色条 divider1 = make_axes_locatable(ax1) # 在图右侧添加色条轴,size控制色条宽度,pad控制与原图的间距 cax1 = divider1.append_axes("right", size="5%", pad=0.05) # 指定色条绑定到新建的轴,保证高度与原图一致 fig.colorbar(im1, cax=cax1) # 处理第二张图,步骤同上 im2 = ax2.imshow(train_images_prep[0]) divider2 = make_axes_locatable(ax2) cax2 = divider2.append_axes("right", size="5%", pad=0.05) fig.colorbar(im2, cax=cax2) # 自动调整布局,避免元素重叠 plt.tight_layout() plt.show()
关键说明
make_axes_locatable会把当前图像轴拆分成可扩展区域,让新增的色条轴严格对齐原图高度。- 放弃默认的
plt.colorbar()调用,改用指定cax参数绑定到专门的色条轴,就能确保两者高度完全匹配。
内容的提问来源于stack exchange,提问作者user18087147
相关产品推荐
相关产品推荐

