Рубрики
Без рубрики

Matplotlib tight_layout в Python с примерами

Различные способы реализации Matplotlib tight_layout в Python наряду с синтаксисом и примерами с использованием gridspec, а также с легендами и аннотациями.

Автор оригинала: Team Python Pool.

Здравствуйте программисты, в сегодняшней статье мы обсудим Matplotlib tight_layout в Python. Библиотека Matplotlib в Python – это численно- математическое расширение для библиотеки NumPy. Модуль Pyplot-это основанный на состоянии интерфейс библиотеки Matplotlib, который предоставляет функции, подобные MATLAB. Различные графики, которые могут быть использованы в Pyplot, – это Линейный график, Контур, гистограмма, Разброс, 3D-график и т. Д.

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

Синтаксис Matplotlib tight_layout в Python

Параметры Matplotlib tight_layout

    pad: Отступ между краем рисунка и краями подзаголовков, как дробь, т. е. плавающее значение размера шрифта. h_pad, w_pad: Заполнение (высота/ширина) между краями соседних подзаголовков в виде дроби, т. е. поплавка размера шрифта. По умолчанию используется pad. (Необязательно) rect: Кортеж (left, bottom, right, top) представляет собой прямоугольник (left, bottom, right, top) в нормализованной координате фигуры, в который будет помещаться вся область подзаголовков (включая метки). По умолчанию это (0, 0, 1, 1).

Возвращаемый тип Matplotlib tight_layout

Этот метод не возвращает никакого значения. Функция Matplotlib tight_layout настраивает подзаголовок таким образом, чтобы он вписывался в область рисунка.

Пример Matplotlib tight_plot в Python

import numpy as np 
import matplotlib.pyplot as plt 
  
fig,.subplots(1, 2) 
  .arange(0.0, 2.0, 0.02) .sin(2 * np.pi * x) .exp(-x) [0].plot(x, y1) [0].plot(x, y2,) 
  .sin(4 * np.pi * x) .exp(-2 * x) [1].plot(x, y3,) [1].plot(x, y4,,) 
  
fig.legend((l1, l2), ('Line 1', 'Line 2'), 'upper left') 
fig.legend((l3, l4), ('Line 3', 'Line 4'), 'upper right') 
  
  
fig.suptitle('matplotlib.pyplot.tight_layout() Example') 
plt.tight_layout() 
plt.show()

Выход:

Пример Matplotlib tight_plot в Python
Пример Matplotlib tight_plot в Python

Объяснение:

В matplotlib python расположение осей, включая подзаголовки, задается в нормализованных координатах фигуры. Может случиться так, что ваши метки осей или заголовки, а иногда даже тиковые метки выходят за пределы области рисунка и, таким образом, обрезаются. Таким образом, чтобы предотвратить это, расположение осей должно быть скорректировано. Matplotlib вводит новую команду tight_layout (), которая делает это автоматически для вас. Для того, чтобы выполнить эту корректировку каждый раз, когда фигура перерисовывается. Вы можете вызвать fig.set_tight_layout(True) или, что то же самое, установить figure.autolayout rcParam в True. В случае нескольких подзаголовков часто вы видите метки разных осей, перекрывающие друг друга. Функция Matplotlib tight_layout() также будет регулировать расстояние между подзаголовками, чтобы минимизировать перекрытия. В этом примере вызывается функция tight_plot, которая настраивает метки и заголовки рисунка вместо того, чтобы обрезать их.

Matplotlib tight_layout с использованием GridSpec

import matplotlib.gridspec as gridspec

plt.close('all').figure()
.GridSpec(2, 1).add_subplot(gs1[0]).add_subplot(gs1[1])

example_plot(ax1)
example_plot(ax2)

gs1.tight_layout(fig, rect=[0, 0, 0.5, 1])

Выход:

Matplotlib tight_layout с использованием GridSpec
Matplotlib tight_layout с использованием GridSpec

Объяснение:

GridSpec имеет свой собственный метод tight_layout(). pyplot API tight_layout() также работает. Вы можете предоставить необязательный rect href="https://en.wikipedia.org/wiki/Parameter_(computer_programming)#:~:text=From%20Wikipedia%2C%20the%20free%20encyclopedia,as%20input%20to%20the%20subroutine.">parameter, который определяет ограничивающую рамку, в которую будут помещены подзаголовки. Координаты должны быть в нормализованных координатах фигуры и по умолчанию (0, 0, 1, 1). Регулировка верха и низа также может потребовать регулировки hspace. Чтобы обновить hspace & vspace, мы снова вызываем tight_layout() с обновленным аргументом rect. Обратите внимание, что аргумент rect указывает область, включающую метки тиков и т. Д. href="https://en.wikipedia.org/wiki/Parameter_(computer_programming)#:~:text=From%20Wikipedia%2C%20the%20free%20encyclopedia,as%20input%20to%20the%20subroutine.">parameter, который определяет ограничивающую рамку, в которую будут помещены подзаголовки. Координаты должны быть в нормализованных координатах фигуры и по умолчанию (0, 0, 1, 1). Регулировка верха и низа также может потребовать регулировки hspace. Чтобы обновить hspace & vspace, мы снова вызываем tight_layout() с обновленным аргументом rect. Обратите внимание, что аргумент rect указывает область, включающую метки тиков и т. Д.

Matplotlib tight_layout с легендами и аннотациями

import matplotlib.gridspec as gridspec

plt.close('all').figure()

fig,.subplots(figsize=(4, 3)).plot(range(10),)
ax.legend(bbox_to_anchor=(0.7, 0.5),,)
fig.tight_layout()
plt.show()

Выход:

Легенды и аннотации
Легенды и аннотации

Объяснение:

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

Должен Читать

Работа с текстом Matplotlib в PythonMatplotlib Figsize | Изменение размера графика с помощью функции FigsizeMatplotlib Arrow() С примерамиКак очистить график в Matplotlib С помощью метода clear()

Вывод

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

Однако, если у вас есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.

Счастливого Пифонирования!