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