¿Cómo utilizar matplotlib diseño apretado con la figura?

Encontré la función tight_layout para pyplot y quiero usarla. En mi aplicación, incrusté diagtwigs de matplotlib en la interfaz gráfica de usuario de Qt y utilizo figure y no pyplot. ¿Hay alguna manera de que pueda aplicar tight_layout allí? ¿También funcionaría si tuviera varios ejes en una figura?

Simplemente llama a fig.tight_layout() como lo harías normalmente. ( pyplot es solo un envoltorio de conveniencia. En la mayoría de los casos, solo lo usa para generar rápidamente objetos de figuras y ejes y luego llamar a sus métodos directamente).

No debería haber una diferencia entre el backend QtAgg y el backend predeterminado (o si lo hay, es un error).

P.ej

 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() 

Antes de un diseño ajustado

introduzca la descripción de la imagen aquí

Después de Tight Layout

 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() 

introduzca la descripción de la imagen aquí