Bug summary
In matplotlib 3.10.0, using fill_between() with transform=ax.get_xaxis_transform() increases the y-limits every time it is called, and the original plot gets squeezed gradually, which did not happen in previous version (3.8.0).
Code for reproduction
#Modified from https://matplotlib.org/stable/gallery/lines_bars_and_markers/fill_between_demo.html
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
x = np.arange(0, 4 * np.pi, 0.01)
y = np.sin(x)
ax.plot(x, y, color='black')
threshold = 0.75
ax.axhline(threshold, color='green', lw=2, alpha=0.7)
for i in range(10):
ax.fill_between(x + 0.5*i, 0, 1, where=y > threshold, color='green', alpha=0.1, transform=ax.get_xaxis_transform())
Actual outcome
Expected outcome
Additional information
The expected outcome is from version 3.8.0
Operating system
Window 11
Matplotlib Version
3.10.0
Matplotlib Backend
module://matplotlib_inline.backend_inline
Python version
Python 3.12.11
Jupyter version
7.4.4
Installation
None
Bug summary
In matplotlib 3.10.0, using
fill_between()withtransform=ax.get_xaxis_transform()increases the y-limits every time it is called, and the original plot gets squeezed gradually, which did not happen in previous version (3.8.0).Code for reproduction
Actual outcome
Expected outcome
Additional information
The expected outcome is from version 3.8.0
Operating system
Window 11
Matplotlib Version
3.10.0
Matplotlib Backend
module://matplotlib_inline.backend_inline
Python version
Python 3.12.11
Jupyter version
7.4.4
Installation
None