使用matplotlib(3.5.0版),我试图获取使用AxesDivider.append_axes
方法创建的Axes
示例的边界框。即,创建该新轴以保持主轴图像的颜色条。因此,我有下面的代码:
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.axes_divider import make_axes_locatable
fig, ax1 = plt.subplots(1, 1)
im1 = ax1.imshow([[1, 2], [3, 4]])
ax1_divider = make_axes_locatable(ax1)
# Add an Axes to the right of the main Axes.
cax1 = ax1_divider.append_axes("right", size="10%", pad="0%")
cb1 = fig.colorbar(im1, cax=cax1)
plt.show()
这将创建下图,显示主轴及其颜色条:
现在我希望在显示坐标中找到colorbar轴的边界框(或者甚至是数字分数,我很容易!),所以我使用Axes.get_position
方法,即:
print(ax1.get_position())
print(cax1.get_position())
这将产生以下输出:
Bbox(x0=0.125, y0=0.125, x1=0.9, y1=0.88)
Bbox(x0=0.125, y0=0.125, x1=0.9, y1=0.88)
正如您所看到的,与直觉相反,colorbar轴的边界框(cax1
)显然与主轴的边界框(ax1
)完全相同。
我的问题是,如何恢复colorbar轴的实际边界框(cax1
)?
我期待cax1
的正确边界框(粗略地说,如果我手工计算正确的话):
Bbox(x0=0.8225, y0=0.125, x1=0.9, y1=0.88)
1条答案
按热度按时间e5njpo681#
你使用的是哪个版本的matplotlib?在我这边(
matplotlib.__version__
= 3.7.1),Bbox
es返回的结果似乎是正确的(并且使用了另一种输出格式):