Closed
Description
Bug report
Bug summary
Creating a FigureCanvas object crashes, if plt.ion()
is called beforehand.
Code for reproduction
The following MWE crashes - but works fine if the line plt.ion()
is removed.
#!/usr/bin/env python
import matplotlib.pyplot as plt
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg
plt.ion()
fig, ax = plt.subplots()
canvas = FigureCanvasQTAgg(fig)
Actual outcome
Traceback (most recent call last):
File "mmwe.py", line 8, in <module>
canvas = FigureCanvasQTAgg(fig)
File "/usr/lib/python3.7/site-packages/matplotlib/backends/backend_qt5agg.py", line 21, in __init__
super().__init__(figure=figure)
File "/usr/lib/python3.7/site-packages/matplotlib/backends/backend_qt5.py", line 236, in __init__
self._update_figure_dpi()
File "/usr/lib/python3.7/site-packages/matplotlib/backends/backend_qt5.py", line 261, in _update_figure_dpi
self.figure._set_dpi(dpi, forward=False)
File "/usr/lib/python3.7/site-packages/matplotlib/figure.py", line 477, in _set_dpi
self.set_size_inches(w, h, forward=forward)
File "/usr/lib/python3.7/site-packages/matplotlib/figure.py", line 913, in set_size_inches
self.stale = True
File "/usr/lib/python3.7/site-packages/matplotlib/artist.py", line 230, in stale
self.stale_callback(self, val)
File "/usr/lib/python3.7/site-packages/matplotlib/pyplot.py", line 589, in _auto_draw_if_interactive
fig.canvas.draw_idle()
File "/usr/lib/python3.7/site-packages/matplotlib/backends/backend_qt5.py", line 495, in draw_idle
if not (self._draw_pending or self._is_drawing):
AttributeError: 'FigureCanvasQTAgg' object has no attribute '_draw_pending'
Expected outcome
No error.
Matplotlib version
- Operating system: Arch Linux
- Matplotlib version: 3.1.1 (installed via pip)
- Matplotlib backend: Qt5Agg
- Python version: 3.7.4
- PyQt5 version: 5.13.0 (installed via pip)
Metadata
Metadata
Assignees
Labels
No labels