Coursera Learner working on a presentation with Coursera logo and
Coursera Learner working on a presentation with Coursera logo and

Программисты часто используют функцию plot для построения точек на диаграммах. Функция plot () по умолчанию создает линию, начинающуюся в одной точке и заканчивающуюся в другой. Эта функция учитывает параметры для определения точек диаграммы. По оси X откладываются точки для параметра 1, а по оси Y – для параметра 2.
В Matplotlib можно построить более одного графика, расположенного в одном графике, двумя способами. Функция subplot () поможет создать один график, а второй можно создать, наложив его на первый, то есть каждый график будет присутствовать на одном графике. Читайте далее, чтобы узнать, как построить несколько графиков в Matplotlib.

Использование функции Subplot () для создания нескольких графиков

Функция Subplot () по своей сути является функцией-оберткой, помогающей программистам строить несколько графиков в рамках одного приспособления. Удобство этой функции заключается в том, что программистам приходится вызывать ее только один раз.

Синтаксис

matplotlib.pyplot.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)

Параметры

nrows, ncols
С их помощью можно определить точное количество столбцов и строк соответственно. Следует также иметь в виду, что использование этих параметров является полностью опциональным. По умолчанию значение этих параметров равно 1.

sharex, sharey
sharex и sharey необходимы для определения свойств, разделяемых между осями y и a. Их возможными значениями могут быть none, col, row. В противном случае, всегда есть значение по умолчанию, обозначаемое как False.

squeeze
В отличие от других значений, это булево значение, которое спрашивает программистов о том, следует ли выдавливать, то есть устранять лишнюю размерность, присутствующую в массиве. По умолчанию значение Squeeze равно False.

subplot_kw
С помощью этого параметра программисты могут добавлять ключевые слова в каждый подплан. По умолчанию этот параметр имеет значение None.

gridspec_kw
Использование этого параметра помогает добавить сетку в каждый подплан. Опять же, значение по умолчанию для этого параметра – None.

fig_kw
Использование параметра fig_kw позволяет программистам добавлять дополнительные аргументы ключевых слов в вызове функции. Значение по умолчанию этого параметра также равно None.

В Matplotlib есть функция, которая имеет много общего с subplot. Эта функция называется subplot2grid(). По своей сути эта функция и subplot почти одинаковы, но subplot2grid() предлагает большую гибкость в вопросе организации объектов графика в соответствии с потребностями программиста.

Вот как выглядит эта функция:

Синтаксис

matplotlib.pyplot.subplot2grid(shape, loc, rowspan=1, colspan=1, fig=None, **kwargs)

Параметр

shape
Параметр shape – это, по сути, последовательность, содержащая 2 целочисленных значения, которые помогают нам определить форму сетки. Именно здесь должны располагаться оси. Первая запись используется для строки, а вторая – для столбца.

Ioc
Как и параметр shape, Ioc также имеет последовательность из 2 целочисленных значений. В этой последовательности первая запись используется для строки, а вторая – для столбца для размещения оси в сетке.

rowspan
Параметр rowspan использует целочисленное значение вместе с числом, которое указывает количество строк, необходимое оси для увеличения или разворота в правую сторону.

colspan
В отличие от параметра rowspan, параметр colspan использует целочисленное значение вместе с числом, указывающим общее количество столбцов, которое потребуется оси для увеличения длины в направлении вниз.

fig
Параметр fig является совершенно необязательным и использует значение Figure для размещения оси в. Также стоит помнить, что по умолчанию fig используется текущая фигура.

Kwargs
Kwargs помогает программистам передавать дополнительные аргументы ключевых слов при вызове функции. Значение этого параметра по умолчанию – None.

Создание участка внутри одного и того же участка

До сих пор мы обсуждали основы Matplotlib и использование subplot для создания более чем одного графика с помощью библиотек subplot2grid и subplot grid. Теперь давайте обсудим, как составлять субплоты в одном и нескольких направлениях.

Компиляция субплотов в одном направлении

Два необязательных аргумента pyplot.subplots определяют количество столбцов и строк, присутствующих в сетке субплотов. Если планируется сложение только в одном направлении, axs по сути является массивом1D NumPy, который содержит инвентарь Axes.

Сложение подпланов в двух направлениях

Возвращаемый axs при суммировании в двух направлениях представляет собой массив 2D NumPy. Тем, кто планирует создавать параметры для каждого подплота, лучше всего будет итерировать каждый подплот, используя двумерную сетку через for ax in axs.flat:

Совместное использование осей

По умолчанию каждая ось масштабируется индивидуально. Поэтому значения тиков на подплощадках не будут правильно выстраиваться, если их диапазоны не совпадают. Установка sharey или sharex в True активирует глобальное совместное использование во всей сетке, что означает, что оси y вертикально расположенных субплощадок имеют одинаковый масштаб, если они используют sharey=True.

Одного набора тиковых меток более чем достаточно, когда речь идет о совместном использовании осей вложенных участков. Что касается внутренних осей, то их тиковые метки автоматически удаляются с помощью sharey и sharex. Однако среди подплощадок все еще остается незанятое пространство.
Если вы хотите правильно управлять позиционированием подплотов, лучше всего использовать GridSpec с Figure.add_gridspec, а затем использовать технику подплотов. Например, можно минимизировать высоту вертикального подплана, используя add_gridspec(hspace=0).label_outer. Это невероятно полезный метод для удаления галочек и меток с подплотов, расположенных не на границе сетки.

Кроме True и False, sharey и sharex принимают значения ‘col’ и ‘row’ только для каждого столбца или строки. Если вы планируете создать более сложную структуру совместного использования, лучше создать сетку осей без совместного использования, а затем использовать axes.Axes.sharex или axes.Axes.sharey.

Формирование множественных графиков в Matplotlib может быть сложным, если не иметь достаточных знаний основ, правильного синтаксиса и параметров. Однако информация, рассмотренная в этом материале, поможет вам строить графики в Matplotlib правильным способом, гарантируя, что вы также сможете создавать множественные графики с относительной легкостью.