J'ai trouvé la fonction tight_layout pour pyplot et je veux l'utiliser. Dans mon application, j'intègre des graphiques matplotlib dans l'interface graphique Qt et j'utilise figure et non pyplot. Existe-t-il un moyen de pouvoir y appliquer tight_layout? Cela fonctionnerait-il aussi si j'avais plusieurs axes sur une même figure?
Appelez simplement fig.tight_layout()
comme vous le feriez normalement. (pyplot
est juste un wrapper de commodité. Dans la plupart des cas, vous ne l'utilisez que pour générer rapidement des objets figure et axes, puis appeler directement leurs méthodes.)
Il ne devrait pas y avoir de différence entre le backend QtAgg
et le backend par défaut (ou s'il y en a un, c'est un bug).
Par exemple.
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()
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()