Zunächst einmal gibt es eine einfachere Problemumgehung für Ihr ursprüngliches Problem, solange Sie damit einverstanden sind, etwas ungenau zu sein. Setzen Sie nach dem Aufruf einfach die oberste Ausdehnung der Unterzeichnungen auf die Standardeinstellung zurücktight_layout :
fig, axes = plt.subplots(ncols=2, sharey=True)
plt.setp(axes, title='Test')
fig.suptitle('An overall title', size=20)
fig.tight_layout()
fig.subplots_adjust(top=0.9)
plt.show()

Um Ihre Frage zu beantworten, müssen Sie die Unterzeichnungen jedoch auf einer etwas niedrigeren Ebene erstellen, um gridspec verwenden zu können. Wenn Sie das Ausblenden gemeinsam genutzter Achsen wie subplotsfolgt replizieren möchten , müssen Sie dies manuell tun, indem Sie das shareyArgument verwenden Figure.add_subplotund die duplizierten Ticks mit ausblenden plt.setp(ax.get_yticklabels(), visible=False).
Als Beispiel:
import matplotlib.pyplot as plt
from matplotlib import gridspec
fig = plt.figure()
gs = gridspec.GridSpec(1,2)
ax1 = fig.add_subplot(gs[0])
ax2 = fig.add_subplot(gs[1], sharey=ax1)
plt.setp(ax2.get_yticklabels(), visible=False)
plt.setp([ax1, ax2], title='Test')
fig.suptitle('An overall title', size=20)
gs.tight_layout(fig, rect=[0, 0, 1, 0.97])
plt.show()
