在下面的示例中,我如何让ax2(底部)占据左侧的整个空间? 通过"充分利用空间"我的意思是将绘图区域扩展到图的左边界,即。还使用标签标题下方的空格和ax1的刻度。
import matplotlib.gridspec as gridspec
import matplotlib.pyplot as plt
def example_plot(ax, fontsize=12):
ax.plot([1, 2])
ax.locator_params(nbins=3)
ax.set_xlabel('x-label', fontsize=fontsize)
ax.set_ylabel('y-label', fontsize=fontsize)
ax.set_title('Title', fontsize=fontsize)
def example_plot_noY(ax, fontsize=12):
ax.plot([1, 2])
ax.locator_params(nbins=3)
ax.set_xlabel('x-label', fontsize=fontsize)
ax.set_yticks([])
ax.set_title('Title', fontsize=fontsize)
plt.close('all')
fig = plt.figure()
gs1 = gridspec.GridSpec(2, 1)
ax1 = fig.add_subplot(gs1[0])
ax2 = fig.add_subplot(gs1[1])
example_plot(ax1)
example_plot_noY(ax2)
gs1.tight_layout(fig)
plt.show()
答案 0 :(得分:2)
见GridSpec with Varying Cell Sizes。 您可以在gridspec中添加另一列,该列占用上图的标签空间。如果你之后调用严格的布局,你不需要关心它的宽度,它可以是0大小,
gs1 = gridspec.GridSpec(2, 2, width_ratios=[0, 1])
ax1 = fig.add_subplot(gs1[0,1])
ax2 = fig.add_subplot(gs1[1,0:])
# ...
fig.tight_layout()