Если ваша метка не длинная, вы можете просто добавить ее к среднему графику и использовать tight_layout
для ее форматирования:
fig = plt.figure(figsize=(15,9))
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 0], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 1], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 2], 1, 3 )
if i == 1:
ax.set_ylabel("label for all")
plt.tight_layout()
plt.show()
Однако это не будет работать для очень длинных меток, потому что tight_layout
будет неверно истолковывать высоту среднего ряда.В этом случае мы можем просто заменить текст более длинной версией:
fig = plt.figure(figsize=(15,9))
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 0], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 1], 1, 1 )
for i in range(3):
ax = plt.subplot2grid((3, 5), [i, 2], 1, 3 )
if i == 1:
mylabel = ax.set_ylabel("dummy")
plt.tight_layout()
mylabel.set_text("not a dummy any more but a very very very loooooooooooooooooong label")
plt.show()
Пример вывода: