Подтвердить что ты не робот

Как использовать матплотблиб плотный макет с рисунком?

Я нашел функцию tight_layout для pyplot и хочу ее использовать. В моем приложении я вставляю графики matplotlib в Qt GUI и использую фигуру, а не pyplot. Есть ли способ, которым я могу применить tight_layout? Будет ли он работать, если у меня есть несколько осей на одной фигуре?

4b9b3361

Ответ 1

Просто позвоните fig.tight_layout(), как обычно. (pyplot - это просто удобная обертка. В большинстве случаев вы используете ее только для быстрого создания объектов фигуры и осей, а затем вызываете их методы напрямую.)

Не должно быть разницы между бэкэндом QtAgg и бэкэнд по умолчанию (или если есть, это ошибка).

например.

import matplotlib.pyplot as plt

#-- In your case, you'd do something more like:
# from matplotlib.figure import Figure
# fig = Figure()
#-- ...but we want to use it interactive for a quick example, so 
#--    we'll do it this way
fig, axes = plt.subplots(nrows=4, ncols=4)

for i, ax in enumerate(axes.flat, start=1):
    ax.set_title('Test Axes {}'.format(i))
    ax.set_xlabel('X axis')
    ax.set_ylabel('Y axis')

plt.show()

Перед строгой компоновкой

enter image description here

После плотной компоновки

import matplotlib.pyplot as plt

fig, axes = plt.subplots(nrows=4, ncols=4)

for i, ax in enumerate(axes.flat, start=1):
    ax.set_title('Test Axes {}'.format(i))
    ax.set_xlabel('X axis')
    ax.set_ylabel('Y axis')

fig.tight_layout()

plt.show()

enter image description here