如何用Matplotlib绘制同尺寸双卫星图:单色彩条且图像等大
解决方案
直接用mpl_toolkits.axes_grid1里的make_axes_locatable工具,它能自动为分析图创建高度完全匹配的色彩条,同时保证两张卫星图的显示尺寸完全一致,不用手动调整任何比例参数。
完整代码示例:
import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1 import make_axes_locatable # 假设rgb_img和analysis是已加载的300*300图像数据 fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 6)) # 可根据需求调整整体画布大小 # 绘制真彩色图 ax1.imshow(rgb_img) ax1.axis('off') # 绘制分析图并添加匹配高度的色彩条 im = ax2.imshow(analysis) ax2.axis('off') # 创建分割器,为色条预留空间 divider = make_axes_locatable(ax2) cax = divider.append_axes("right", size="5%", pad=0.1) # size控制色条宽度,pad控制间距 fig.colorbar(im, cax=cax) plt.tight_layout() # 自动调整布局,避免元素重叠 plt.show()
核心优势:
subplots(1,2)自动生成两个尺寸完全一致的子图,从根源保证两张卫星图显示大小相同make_axes_locatable基于分析图的子图尺寸,精确计算色条高度,让色条和分析图完美对齐- 无需手动计算GridSpec的比例分配,所有布局逻辑由Matplotlib自动完成
内容的提问来源于stack exchange,提问作者mankjo
相关产品推荐
相关产品推荐

