【发布时间】:2020-03-18 09:31:53
【问题描述】:
我想计算wspace 以自定义调整gridspec 指定的子图,例如,将文本放在两个子图之间而不与轴重叠。根据doc,wspace是
为子图之间的空间保留的宽度量,表示为平均轴宽度的分数。
所以它可以通过(ax1_pos.x0 - ax0_pos.x1) / (ax1_pos.x1 - ax1_pos.x0) 计算,正如here 指出的那样。
但是,当我在gridspec 中应用width_ratios 参数时,计算出的wspace 变得与分配的wspace 不一致,并且似乎与比率成正比。 width_ratios调整wspace有什么线索吗?
fig = plt.figure(figsize=(10, 6))
gs = gridspec.GridSpec(ncols=2, nrows=30, wspace=0.5)
gs1_pos = gs[:, 1].get_position(fig)
gs0_pos = gs[:, 0].get_position(fig)
ax0 = fig.add_subplot(gs[:, 0])
ax1 = fig.add_subplot(gs[:, 1])
print("Grids 0 position")
print(gs0_pos)
print("Grids 1 position")
print(gs1_pos)
print('space between figures represented as a fraction of axis width')
print((gs1_pos.x0 - gs0_pos.x1) / (gs1_pos.x1 - gs1_pos.x0))
# return 0.5
但是一旦申请width_ratio,那么
fig = plt.figure(figsize=(10, 6))
gs = gridspec.GridSpec(ncols=2, nrows=30, width_ratios=[1, 4], wspace=0.5)
gs1_pos = gs[:, 1].get_position(fig)
gs0_pos = gs[:, 0].get_position(fig)
ax0 = fig.add_subplot(gs[:, 0])
ax1 = fig.add_subplot(gs[:, 1])
print("Grids 0 position")
print(gs0_pos)
print("Grids 1 position")
print(gs1_pos)
print('space between figures represented as a fraction of axis width')
print((gs1_pos.x0 - gs0_pos.x1) / (gs1_pos.x1 - gs1_pos.x0))
# return 0.3125
【问题讨论】:
标签: python matplotlib