如何获取AxesDivider.append_axes创建的Axes真实边界框?
Matplotlib 3.5.0中AxesDivider.append_axes创建的色条Axes边界框获取异常问题
- 问题现象:使用Matplotlib 3.5.0版本,通过
AxesDivider.append_axes方法创建承载主图色条的Axes(如cax1)时,调用Axes.get_position()获取其边界框,得到的结果与主Axes(ax1)的边界框完全一致,无法获取色条Axes的真实位置。 - 时机影响:测试发现
get_position()的调用时机直接决定结果正确性:- 在
plt.show()之前调用,返回错误的边界框值; - 在
plt.show()之后调用,能得到正确的真实边界框(示例值:Bbox(x0=0.8225, y0=0.125, x1=0.9, y1=0.88))。
- 在
- 临时解决方案:在调用
get_position()获取cax1边界框之前,先执行fig.canvas.draw(),强制画布完成渲染,即可获取到真实的边界框值。
内容的提问来源于stack exchange,提问作者simonp2207
相关产品推荐
相关产品推荐

