Spec-Zone.ru › Matplotlib

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.

Параметры:
figFigure, для которой выполняется компоновка.
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:

  1. переопределите _adjust_compatible и _colorbar_gridspec
  2. переопределите LayoutEngine.set, чтобы обновлять self._params
  3. переопределите 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.

Параметры:
figFigure, для которой выполняется компоновка.

См. также

figure.Figure.tight_layout
pyplot.tight_layout
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API