Very similar to this question but with the difference that my figure can be as large as it needs to be.
I need to generate a whole bunch of vertically-stacked plots
You could try the subplot_tool()
plt.subplot_tool()