Zunächst einmal gibt es eine einfachere Problemumgehung für Ihr ursprüngliches Problem, solange Sie damit einverstanden sind, etwas ungenau zu sein. Reset Nur die Top-Ausdehnung der Handlungsstränge auf den Standard nach Aufruf tight_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()
jedoch Ihre Frage zu beantworten, werden Sie die Handlungsstränge zu einem etwas erstellen müssen untere Ebene, um gridspec zu verwenden. Wenn Sie das Ausblenden von gemeinsamen Achsen wie subplots
replizieren möchten, müssen Sie das manuell tun, indem Sie das sharey
-Argument zu Figure.add_subplot
verwenden und die doppelten Ticks mit plt.setp(ax.get_yticklabels(), visible=False)
ausblenden.
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()