Bug summary
fig.tight_layout is broken in current matplotlib.
Code for reproduction
%pylab
plot([0,1])
tight_layout()
# happens same way in object mode
from matplotlib import pylab as plt
fig, ax = plt.subplots()
ax.plot([0,1])
fig.tight_layout()
Actual outcome

below another example from real code that may be instructive

Expected outcome
figure scaled to image size, background deleted.
Additional information
Happens always.
I do not recall this issue in version before 3.5
I have no clue why it is happening. The flaw seems to lay in mpl getting/setting wrong window size when using tight_layout. Maybe gtk unhappy with X11. When I use mpl.use('Qt5Cairo') then it just makes the window and fonts smaller. Obviously, tight_layout should not change physical window size on screen! Similar for Gtk4Cairo. Gtk4Agg has similar issues to Qt5Agg but does not retain noise in background, just shrinks figure. I could be related to DPI settings. It might get them from a different system call than when opening the window?
The only fix I can find is use other plot package, e.g., plotly.
Operating system
Linux 5.16.14-200.fc35.x86_64 #1 SMP PREEMPT Fri Mar 11 20:31:18 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Matplotlib Version
3.5.1
Matplotlib Backend
Qt5Agg
Python version
Python 3.10.2
Jupyter version
N/A
Installation
pip
Bug summary
fig.tight_layout is broken in current matplotlib.
Code for reproduction
Actual outcome
below another example from real code that may be instructive
Expected outcome
figure scaled to image size, background deleted.
Additional information
Happens always.
I do not recall this issue in version before 3.5
I have no clue why it is happening. The flaw seems to lay in mpl getting/setting wrong window size when using tight_layout. Maybe gtk unhappy with X11. When I use
mpl.use('Qt5Cairo')then it just makes the window and fonts smaller. Obviously,tight_layoutshould not change physical window size on screen! Similar for Gtk4Cairo.Gtk4Agghas similar issues toQt5Aggbut does not retain noise in background, just shrinks figure. I could be related to DPI settings. It might get them from a different system call than when opening the window?The only fix I can find is use other plot package, e.g., plotly.
Operating system
Linux 5.16.14-200.fc35.x86_64 #1 SMP PREEMPT Fri Mar 11 20:31:18 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Matplotlib Version
3.5.1
Matplotlib Backend
Qt5Agg
Python version
Python 3.10.2
Jupyter version
N/A
Installation
pip