我创建了一个 (2x3) 子图并强制它们constrained_layout=True使用下面的代码。我想隐藏 ax03 并在该区域创建其他图形。出于对齐的目的,我曾经ax.get_position获取过 ax03 的轴位置,并使用它add_axes()来制作一个新的轴。但似乎它没有按预期对齐。根据我的观察,get_position()在布局重新安排之前返回轴的位置。
注意:如果我分两部分执行代码,那么我当然可以得到位置。我想在一次执行中实现它。
import matploltib.pyplot as plt
# Section 1
fig, 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 2
pos = ax03.get_position() # get the original position
width = pos.x1 - pos.x0
height = pos.y1 - pos.y0
print(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
慕斯709654
相关分类