Thanks to visit codestin.com
Credit goes to github.com

Skip to content

FigureCanvas constructor crashes if interactive mode is switched on #15205

Closed
@catastropeia

Description

@catastropeia

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions