Closed
Description
Bug report
Bug summary
Matplotlib 2.2.2 fails to plot the figure described below. The code works with Matplotlib 2.0.2.
The issue seems to be the combination of sharex=True, sharey=True
and axis('equal')
.
Code for reproduction
import matplotlib.pyplot as plt
import numpy as np
nrows = 3
ncols = 2
fig, axes = plt.subplots(ncols=ncols, nrows=nrows, sharex=True, sharey=True)
n = 20
np.random.seed(1234)
data = np.random.uniform(size=(nrows, ncols, n, n))
for i in range(nrows):
for j in range(ncols):
ax = axes[i, j]
ax.imshow(data[i, j])
ax.axis("equal")
plt.show()
Actual outcome
With Matplotlib 2.2.2, the figure is not drawn and the following exception is raised:
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\backends\backend_qt5.py", line 519, in _draw_idle
self.draw()
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py", line 433, in draw
self.figure.draw(self.renderer)
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\figure.py", line 1475, in draw
renderer, self, artists, self.suppressComposite)
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\image.py", line 141, in _draw_list_compositing_images
a.draw(renderer)
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 2546, in draw
self.apply_aspect()
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 1631, in apply_aspect
raise RuntimeError("adjustable='datalim' is not allowed when both"
RuntimeError: adjustable='datalim' is not allowed when both axes are shared.
Expected outcome
Drawn figure, no error, as with Matplotlib 2.0.2
Matplotlib version
- Operating system: Windows 7 64 bits
- Matplotlib version: 2.2.2
- Matplotlib backend (
print(matplotlib.get_backend())
): Qt5Agg - Python version: 3.6
- Jupyter version (if applicable):
- Other libraries: Anaconda 5.2