matplotlib.pyplot.subplots
- matplotlib.pyplot.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True, width_ratios=None, height_ratios=None, subplot_kw=None, gridspec_kw=None, **fig_kw)[исходный код]
-
Создаёт фигуру и набор подграфиков.
Эта вспомогательная функция упрощает создание распространённых компоновок подграфиков вместе с содержащим их объектом figure одним вызовом.
- Параметры:
-
- nrows, ncolsint, по умолчанию: 1
-
Количество строк и столбцов в сетке подграфиков.
- sharex, shareybool или {'none', 'all', 'row', 'col'}, по умолчанию: False
-
Управляет совместным использованием свойств осей x (sharex) или y (sharey):
- True или 'all': ось x или y будет общей для всех подграфиков.
- False или 'none': ось x или y каждого подграфика будет независимой.
- 'row': все подграфики в каждой строке будут использовать общую ось x или y.
- 'col': все подграфики в каждом столбце будут использовать общую ось x или y.
Если у подграфиков в столбце общая ось x, метки делений x создаются только для нижнего подграфика. Аналогично, если у подграфиков в строке общая ось y, метки делений y создаются только для подграфика в первом столбце. Чтобы впоследствии включить метки делений у других подграфиков, используйте
tick_params.Если у подграфиков общая ось с единицами измерения, вызов
Axis.set_unitsобновит единицы измерения для каждой оси.Обратите внимание, что разделить общие оси невозможно.
- squeezebool, по умолчанию: True
-
-
Если True, лишние измерения удаляются из возвращаемого массива объектов
Axes:- если создан только один подграфик (nrows=ncols=1), полученный единственный объект Axes возвращается как скаляр.
- для подграфиков Nx1 или 1xM возвращается одномерный массив объектов numpy с объектами Axes.
- для подграфиков NxM, где N>1 и M>1, возвращается двумерный массив.
- Если False, размерность не сокращается: возвращаемый объект Axes всегда представляет собой двумерный массив с экземплярами Axes, даже если его размер равен 1x1.
-
- width_ratiosмассивоподобный объект длины ncols, необязательный
-
Задаёт относительную ширину столбцов. Относительная ширина каждого столбца равна
width_ratios[i] / sum(width_ratios). Если значение не задано, все столбцы будут иметь одинаковую ширину. Эквивалентноgridspec_kw={'width_ratios': [...]}. - height_ratiosмассивоподобный объект длины nrows, необязательный
-
Задаёт относительную высоту строк. Относительная высота каждой строки равна
height_ratios[i] / sum(height_ratios). Если значение не задано, все строки будут иметь одинаковую высоту. Упрощённая форма записи дляgridspec_kw={'height_ratios': [...]}. - subplot_kwdict, необязательный
-
Словарь с именованными аргументами, передаваемыми вызову
add_subplot, который используется для создания каждого подграфика. - gridspec_kwdict, необязательный
-
Словарь с именованными аргументами, передаваемыми конструктору
GridSpec, который используется для создания сетки, в которой размещаются подграфики. - **fig_kw
-
Все дополнительные именованные аргументы передаются вызову
pyplot.figure.
- Возвращает:
-
-
fig
Figure -
ax
Axesили массив объектов Axes -
ax может быть как одним объектом
Axes, так и массивом объектов Axes, если создано больше одного подграфика. Размерность полученного массива можно настроить с помощью ключевого слова squeeze (см. выше).Типичные способы обработки возвращаемого значения:
# using the variable ax for single a Axes fig, ax = plt.subplots() # using the variable axs for multiple Axes fig, axs = plt.subplots(2, 2) # using tuple unpacking for multiple Axes fig, (ax1, ax2) = plt.subplots(1, 2) fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2)
Предпочтительно использовать имена
axи форму множественного числаaxsвместоaxes, поскольку в последнем случае неясно, относится ли оно к одному экземпляруAxesили к их коллекции.
-
fig
Примеры
# First create some toy data: x = np.linspace(0, 2*np.pi, 400) y = np.sin(x**2) # Create just a figure and only one subplot fig, ax = plt.subplots() ax.plot(x, y) ax.set_title('Simple plot') # Create two subplots and unpack the output array immediately f, (ax1, ax2) = plt.subplots(1, 2, sharey=True) ax1.plot(x, y) ax1.set_title('Sharing Y axis') ax2.scatter(x, y) # Create four polar Axes and access them through the returned array fig, axs = plt.subplots(2, 2, subplot_kw=dict(projection="polar")) axs[0, 0].plot(x, y) axs[1, 1].scatter(x, y) # Share a X axis with each column of subplots plt.subplots(2, 2, sharex='col') # Share a Y axis with each row of subplots plt.subplots(2, 2, sharey='row') # Share both X and Y axes with all subplots plt.subplots(2, 2, sharex='all', sharey='all') # Note that this is the same as plt.subplots(2, 2, sharex=True, sharey=True) # Create figure number 10 with a single subplot # and clears it if it already exists. fig, ax = plt.subplots(num=10, clear=True)
Примеры использования matplotlib.pyplot.subplots
Анимированное изображение с использованием предварительно вычисленного списка изображений
Анимированная диаграмма рассеяния, сохранённая в GIF
Управление положением и размером цветовой шкалы с помощью вставных осей
Выравнивание гистограммы относительно диаграммы рассеяния с помощью размещаемых Axes
Контурное отображение пространства решений задач оптимизации
Смешивание прозрачности с цветом на двумерных изображениях
Столбчатая диаграмма с индивидуальными цветами столбцов
Закраска области между двумя вертикальными линиями
Дискретное распределение в виде горизонтальной столбчатой диаграммы
Отображение многомерных данных с помощью свойств маркеров
Затенение областей, заданных логической маской, с помощью fill_between
Построение гистограмм с помощью прямоугольников и коллекций многоугольников
Отсечение данных по границам области просмотра осей
Пользовательское затенение рельефа на трёхмерной поверхности
Коллекция Line, Poly и RegularPoly с автоматическим масштабированием
Построение нескольких линий с помощью LineCollection
Радарная диаграмма (также паутинная или звёздчатая)
Диаграммы размаха с пользовательскими цветами заливки
Построение доверительного эллипса для двумерного набора данных
Указание верхних и нижних пределов для полос погрешностей
Создание прямоугольников из полос погрешностей с помощью PatchCollection
Демонстрация различных настроек histtype функции histogram
Функция histogram (hist) для нескольких наборов данных
Управление пределами отображения с помощью полей и sticky_edges
Изменение размеров Axes с помощью constrained layout
Встроенная область Axes для увеличенного фрагмента
Форматирование делений дат с помощью ConciseDateFormatter
Размещение делений дат с помощью правил повторения
Пользовательский форматировщик делений для временных рядов
Смещения с приставками СИ и естественный порядок величин
Размещение подписей делений оси y справа по умолчанию
Групповая столбчатая диаграмма с единицами измерения
Выбор индексов элементов коллекции с помощью инструмента выбора многоугольника
© 2012–2026 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.subplots.html