我创建了一个 (2x3) 子图并强制它们constrained_layout=True使用下面的代码。我想隐藏 ax03 并在该区域创建其他图形。出于对齐的目的,我曾经ax.get_position获取过 ax03 的轴位置,并使用它add_axes()来制作一个新的轴。但似乎它没有按预期对齐。根据我的观察,get_position()在布局重新安排之前返回轴的位置。注意:如果我分两部分执行代码,那么我当然可以得到位置。我想在一次执行中实现它。import matploltib.pyplot as plt# Section 1fig, axes = plt.subplots(2, 3, figsize=(7.2, 7.2/1.68), constrained_layout=True)axes = axes.ravel()ax01 = axes[0]ax02 = axes[1]ax03 = axes[2]ax11 = axes[3]ax12 = axes[4]ax13 = axes[5]# Section 2pos = ax03.get_position() # get the original positionwidth = pos.x1 - pos.x0height = pos.y1 - pos.y0print(ax03.get_position())ax = fig.add_axes([pos.x0, pos.y0, width, height])print(ax.get_position()) # it seems the position of ax is the postion before constrained is applied.这是同时执行第 1 节和第 2 节时得到的结果。职位信息:Bbox (x0 = 0.6720588235294118, y0 = 0.53, x1 = 0.9000000000000001, y1 = 0.88) Bbox (x0 = 0.6720588235290588235290 = 0.6720588235290 =.010.0010.08).080.08
3 回答
慕斯709654
TA贡献1840条经验 获得超5个赞
你确实得到了 的位置ax03,而且位置是正确的。获得相同位置的原因是因为您将 的位置设置ax为与 完全相同的位置ax03。
width = pos.x1 - pos.x0
height = pos.y1 - pos.y0
这将获得 的宽度和高度ax03。
ax = fig.add_axes([pos.x0, pos.y0, width, height])
这将创建具有相同新的人物x0,y0,width,和height作为ax03。他们在同一个地方。打印位置证实了这一点。
添加回答
举报
0/150
提交
取消