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 subplots
folgt replizieren möchten , müssen Sie dies manuell tun, indem Sie das sharey
Argument verwenden Figure.add_subplot
und 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()