matplotlib.layout_engine
Классы для размещения элементов в Figure.
У фигур есть свойство layout_engine, содержащее подкласс LayoutEngine, определённый здесь (или None, если макет не используется). Во время отрисовки вызывается figure.get_layout_engine().execute(), цель которого обычно состоит в перестановке Axes на фигуре для создания аккуратного макета. Это похоже на обратный вызов draw, но есть два отличия. Во-первых, при печати мы отключаем механизм макета для финальной отрисовки. Во-вторых, полезно знать, какой механизм макета используется, пока создаётся фигура. В частности, цветовые шкалы создаются по-разному в зависимости от механизма макета (по историческим причинам).
В Matplotlib есть два встроенных механизма макета:
-
TightLayoutEngine— первый механизм макета, добавленный в Matplotlib. См. также Руководство по Tight layout. -
ConstrainedLayoutEngine— более современный механизм, который обычно даёт лучшие результаты. См. также Руководство по Constrained layout.
Сторонние разработчики могут создавать собственные механизмы макета, наследуя класс LayoutEngine.
- classmatplotlib.layout_engine.ConstrainedLayoutEngine(*, h_pad=None, w_pad=None, hspace=None, wspace=None, rect=(0, 0, 1, 1), compress=False, **kwargs)[исходный код]
-
Реализует управление геометрией
constrained_layout. Подробности см. в руководстве по Constrained layout.Инициализирует параметры
constrained_layout.- Параметры:
-
- h_pad, w_padfloat
-
Отступ вокруг элементов Axes в дюймах. По умолчанию используются
rcParams["figure.constrained_layout.h_pad"](значение по умолчанию:0.04167) иrcParams["figure.constrained_layout.w_pad"](значение по умолчанию:0.04167). - hspace, wspacefloat
-
Доля фигуры, отводимая под промежутки между осями. Она равномерно распределяется между промежутками между Axes. При макете из трёх столбцов значение 0.2 задаст промежуток шириной 0.1 от ширины фигуры между каждым столбцом. Если h/wspace < h/w_pad, вместо этого используются отступы. По умолчанию используются
rcParams["figure.constrained_layout.hspace"](значение по умолчанию:0.02) иrcParams["figure.constrained_layout.wspace"](значение по умолчанию:0.02). - rectкортеж из 4 чисел с плавающей точкой
-
Прямоугольник в координатах фигуры, в пределах которого выполняется constrained layout (left, bottom, width, height); каждое значение находится в диапазоне 0–1.
- compressbool
-
Следует ли сдвигать Axes, чтобы убрать пустое пространство между ними. Это полезно для простых сеток Axes с фиксированным соотношением сторон (например, сетки изображений). См. Сетки Axes с фиксированным соотношением сторон: «сжатый» макет.
- propertyadjust_compatible
-
Возвращает логическое значение, указывающее, совместим ли механизм макета с
subplots_adjust.
- propertycolorbar_gridspec
-
Возвращает логическое значение, указывающее, создаёт ли механизм макета цветовые шкалы с помощью gridspec.
- execute(fig)[исходный код]
-
Выполняет constrained_layout и соответствующим образом перемещает и изменяет размеры Axes.
- Параметры:
-
-
fig
Figure, для которой выполняется компоновка.
-
fig
- get()[исходный код]
-
Возвращает копию параметров механизма макета.
- set(*, h_pad=None, w_pad=None, hspace=None, wspace=None, rect=None)[исходный код]
-
Задаёт отступы для constrained_layout.
- Параметры:
-
- h_pad, w_padfloat
-
Отступ вокруг элементов Axes в дюймах. По умолчанию используются
rcParams["figure.constrained_layout.h_pad"](значение по умолчанию:0.04167) иrcParams["figure.constrained_layout.w_pad"](значение по умолчанию:0.04167). - hspace, wspacefloat
-
Доля фигуры, отводимая под промежутки между осями. Она равномерно распределяется между промежутками между Axes. При макете из трёх столбцов значение 0.2 задаст промежуток шириной 0.1 от ширины фигуры между каждым столбцом. Если h/wspace < h/w_pad, вместо этого используются отступы. По умолчанию используются
rcParams["figure.constrained_layout.hspace"](значение по умолчанию:0.02) иrcParams["figure.constrained_layout.wspace"](значение по умолчанию:0.02). - rectкортеж из 4 чисел с плавающей точкой
-
Прямоугольник в координатах фигуры, в пределах которого выполняется constrained layout (left, bottom, width, height); каждое значение находится в диапазоне 0–1.
- classmatplotlib.layout_engine.LayoutEngine(**kwargs)[исходный код]
-
Базовый класс механизмов макета Matplotlib.
Механизм макета можно передать фигуре при её создании или в любой момент с помощью
set_layout_engine. После привязки к фигуре функция механизма макетаexecuteвызывается во время отрисовки методомdraw, предоставляя специальный обработчик для этапа отрисовки.Примечание
Однако следует учитывать, что механизмы макета влияют на создание цветовых шкал, поэтому
set_layout_engineследует вызывать до создания цветовых шкал.В настоящее время при работе с фигурой учитываются два свойства классов
LayoutEngine:-
-
engine.colorbar_gridspecуказывает методуFigure.colorbar, следует ли создавать -
оси с помощью метода gridspec (см.
colorbar.make_axes_gridspec) или без него (см.colorbar.make_axes);
-
-
-
engine.adjust_compatibleзапрещает запуск методаFigure.subplots_adjust, -
если он несовместим с механизмом макета.
-
Чтобы реализовать пользовательский
LayoutEngine:- переопределите
_adjust_compatibleи_colorbar_gridspec - переопределите
LayoutEngine.set, чтобы обновлять self._params - переопределите
LayoutEngine.execute, реализовав собственный вариант
- propertyadjust_compatible
-
Возвращает логическое значение, указывающее, совместим ли механизм макета с
subplots_adjust.
- propertycolorbar_gridspec
-
Возвращает логическое значение, указывающее, создаёт ли механизм макета цветовые шкалы с помощью gridspec.
- execute(fig)[исходный код]
-
Выполняет компоновку фигуры, заданной аргументом fig.
- get()[исходный код]
-
Возвращает копию параметров механизма макета.
- set(**kwargs)[исходный код]
-
Задаёт параметры механизма макета.
-
- classmatplotlib.layout_engine.PlaceHolderLayoutEngine(adjust_compatible, colorbar_gridspec, **kwargs)[исходный код]
-
Этот механизм макета никак не изменяет макет фигуры.
Назначение этого
LayoutEngine— служить заполнителем, когда пользователь удаляет механизм макета, чтобы впоследствии нельзя было установить несовместимыйLayoutEngine.- Параметры:
-
- adjust_compatible, colorbar_gridspecbool
-
Позволяют PlaceHolderLayoutEngine повторять поведение заменяемого им механизма макета.
- propertyadjust_compatible
-
Возвращает логическое значение, указывающее, совместим ли механизм макета с
subplots_adjust.
- propertycolorbar_gridspec
-
Возвращает логическое значение, указывающее, создаёт ли механизм макета цветовые шкалы с помощью gridspec.
- execute(fig)[исходный код]
-
Ничего не делает.
- get()[исходный код]
-
Возвращает копию параметров механизма макета.
- set(**kwargs)[исходный код]
-
Задаёт параметры механизма макета.
- classmatplotlib.layout_engine.TightLayoutEngine(*, pad=1.08, h_pad=None, w_pad=None, rect=(0, 0, 1, 1), **kwargs)[исходный код]
-
Реализует управление геометрией
tight_layout. Подробности см. в руководстве по Tight layout.Инициализирует механизм tight_layout.
- Параметры:
-
- padfloat, по умолчанию: 1.08
-
Отступ между краем фигуры и краями подграфиков в долях размера шрифта.
- h_pad, w_padfloat
-
Отступ (по высоте/ширине) между краями соседних подграфиков. По умолчанию равен pad.
- rectкортеж (left, bottom, right, top), по умолчанию: (0, 0, 1, 1).
-
Прямоугольник в нормализованных координатах фигуры, в который должны поместиться подграфики (включая подписи).
- propertyadjust_compatible
-
Возвращает логическое значение, указывающее, совместим ли механизм макета с
subplots_adjust.
- propertycolorbar_gridspec
-
Возвращает логическое значение, указывающее, создаёт ли механизм макета цветовые шкалы с помощью gridspec.
- execute(fig)[исходный код]
-
Выполняет tight_layout.
На основе заданных отступов определяет параметры подграфиков, чтобы подписи Axes не перекрывались другими подписями и Axes.
- Параметры:
-
-
fig
Figure, для которой выполняется компоновка.
-
fig
- get()[исходный код]
-
Возвращает копию параметров механизма макета.
- set(*, pad=None, w_pad=None, h_pad=None, rect=None)[исходный код]
-
Задаёт отступы для tight_layout.
- Параметры:
-
- padfloat
-
Отступ между краем фигуры и краями подграфиков в долях размера шрифта.
- w_pad, h_padfloat
-
Отступ (по ширине/высоте) между краями соседних подграфиков. По умолчанию равен pad.
- rectкортеж (left, bottom, right, top)
-
Прямоугольник в нормализованных координатах фигуры, в который должны поместиться подграфики (включая подписи).
© 2012–2026 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/layout_engine_api.html