Часто вы можете использовать подзаголовки для отображения нескольких графиков рядом друг с другом в Matplotlib. К сожалению, эти подсюжеты имеют тенденцию перекрывать друг друга по умолчанию.
Самый простой способ решить эту проблему — использовать функцию Matplotlibtight_layout ().В этом руководстве объясняется, как использовать эту функцию на практике.
Создать подсюжеты
Рассмотрим следующее расположение 4 подзаголовков в 2 столбцах и 2 строках:
import matplotlib.pyplot as plt
#define subplots
fig, ax = plt.subplots(2, 2)
#display subplots
plt.show()

Обратите внимание, как сюжеты немного перекрывают друг друга.
Отрегулируйте интервал между подграфиками, используя tight_layout()
Самый простой способ решить эту проблему перекрытия — использовать функцию Matplotlibtight_layout () :
import matplotlib.pyplot as plt
#define subplots
fig, ax = plt.subplots(2, 2)
fig. tight_layout ()
#display subplots
plt.show()

Отрегулируйте интервал заголовков подзаголовков
В некоторых случаях у вас также могут быть названия для каждого из ваших сюжетов. К сожалению, даже функция tight_layout() приводит к перекрытию заголовков подзаголовков:
import matplotlib.pyplot as plt
#define subplots
fig, ax = plt.subplots(2, 2)
fig. tight_layout ()
#define subplot titles
ax[0, 0].set_title('First Subplot')
ax[0, 1].set_title('Second Subplot')
ax[1, 0].set_title('Third Subplot')
ax[1, 1].set_title('Fourth Subplot')
#display subplots
plt.show()

Способ решить эту проблему — увеличить отступ по высоте между подграфиками с помощью аргумента h_pad :
import matplotlib.pyplot as plt
#define subplots
fig, ax = plt.subplots(2, 2)
fig. tight_layout (h_pad= 2 )
#define subplot titles
ax[0, 0].set_title('First Subplot')
ax[0, 1].set_title('Second Subplot')
ax[1, 0].set_title('Third Subplot')
ax[1, 1].set_title('Fourth Subplot')
#display subplots
plt.show()

Отрегулируйте интервал общего заголовка
Если у вас есть общий заголовок, вы можете использовать функцию subplots_adjust() , чтобы убедиться, что он не перекрывается с заголовками подзаголовков:
import matplotlib.pyplot as plt
#define subplots
fig, ax = plt.subplots(2, 2)
fig. tight_layout (h_pad= 2 )
#define subplot titles
ax[0, 0].set_title('First Subplot')
ax[0, 1].set_title('Second Subplot')
ax[1, 0].set_title('Third Subplot')
ax[1, 1].set_title('Fourth Subplot')
#add overall title and adjust it so that it doesn't overlap with subplot titles
fig.suptitle('Overall Title')
plt.subplots_adjust(top= 0.85 )
#display subplots
plt.show()

Вы можете найти больше руководств по Matplotlib здесь .