You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已指定cax时如何缩小Matplotlib色条宽度?

解决Matplotlib色条宽度与绘图不匹配的问题

问题根源

当通过cax参数手动指定色条的坐标轴时,shrink和aspect参数会被忽略——色条的尺寸完全由fig.add_axes()传入的四个参数[left, bottom, width, height]控制。你当前设置的width=0.8(占整个画布宽度的80%)和height=0.06051数值接近,导致水平色条看起来异常宽,标签被截断。

解决步骤

调整fig.add_axes()的参数,缩小色条的高度(因为是水平方向,高度对应色条的实际宽度),同时按需调整位置:

修改色条创建的代码行:

# 调整height为更小的值,同时微调bottom位置保证间距
cbar=fig.colorbar(sh,cax=fig.add_axes([0.12, 0.05, 0.8, 0.02]), orientation='horizontal')

参数含义(均为相对于整个画布的比例,范围0-1):

  • left=0.12:色条左侧距离画布左边缘12%
  • bottom=0.05:色条底部距离画布下边缘5%
  • width=0.8:色条宽度占画布宽度80%,与上方子图区域对齐
  • height=0.02:色条高度占画布高度2%,数值越小,色条越窄

额外注意

代码中ax.quiverkey(qu,X=0.9,Y=1.18,U=100,label='100kg/ms',labelpos='W')里的qu变量未定义,会触发报错,需提前创建Quiver对象后再调用该方法。

修改后的色条相关完整代码片段:

cbar=fig.colorbar(sh,cax=fig.add_axes([0.12, 0.05, 0.8, 0.02]), orientation='horizontal')
cbar.ax.tick_params(labelsize=10)
cbar.ax.set_title('kg/ms', fontsize=10)
# 先定义qu对象再调用quiverkey
# qu = ax.quiver(lon, lat, ufd, vfd)
# ax.quiverkey(qu,X=0.9,Y=1.18,U=100,label='100kg/ms',labelpos='W')

内容的提问来源于stack exchange,提问作者Sreeshma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 20:32:33