Как использовать matplotlib плотной компоновки с рисунком? - PullRequest
38 голосов
/ 07 марта 2012

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

1 Ответ

59 голосов
/ 07 марта 2012

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

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

Например,

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

...