Skip to content

CameraDisplay exception in jupyter notebook with widget backend #2871

@maxnoe

Description

@maxnoe

Describe the bug

See below

To Reproduce

Put the following in a jupyter lab notebook with matplotlib 3.10.7, ipympl 0.9.8

import numpy as np
import astropy.units as u
import matplotlib.pyplot as plt

from ctapipe.visualization import CameraDisplay



%matplotlib widget


fig, ax = plt.subplots(layout="constrained", figsize=(6, 5))

display = CameraDisplay(geometry_eng_frame)
display.add_colorbar()

This raises the following error:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[10], line 3
      1 fig, ax = plt.subplots(layout="constrained", figsize=(6, 5))
----> 3 display = CameraDisplay(geometry_eng_frame)
      4 display.add_colorbar()

File [/fefs/aswg/workspace/maximilian.linhoff/.conda/envs/check_dl0/lib/python3.12/site-packages/ctapipe/visualization/mpl_camera.py:185](http://127.0.0.1:8888/fefs/aswg/workspace/maximilian.linhoff/.conda/envs/check_dl0/lib/python3.12/site-packages/ctapipe/visualization/mpl_camera.py#line=184), in CameraDisplay.__init__(self, geometry, image, cmap, norm, autoscale, title, allow_pick, autoupdate, show_frame, ax)
    183     self.image = image
    184 else:
--> 185     self.image = np.zeros_like(self.geom.pix_id, dtype=np.float64)
    187 self.norm = norm
    188 self.auto_set_axes_labels()

File [/fefs/aswg/workspace/maximilian.linhoff/.conda/envs/check_dl0/lib/python3.12/site-packages/ctapipe/visualization/mpl_camera.py:380](http://127.0.0.1:8888/fefs/aswg/workspace/maximilian.linhoff/.conda/envs/check_dl0/lib/python3.12/site-packages/ctapipe/visualization/mpl_camera.py#line=379), in CameraDisplay.image(self, image)
    378 if self.autoscale:
    379     self.pixels.autoscale()
--> 380 self._update()

File [/fefs/aswg/workspace/maximilian.linhoff/.conda/envs/check_dl0/lib/python3.12/site-packages/ctapipe/visualization/mpl_camera.py:385](http://127.0.0.1:8888/fefs/aswg/workspace/maximilian.linhoff/.conda/envs/check_dl0/lib/python3.12/site-packages/ctapipe/visualization/mpl_camera.py#line=384), in CameraDisplay._update(self)
    383 """signal a redraw if autoupdate is turned on"""
    384 if self.autoupdate:
--> 385     self.update()

File [/fefs/aswg/workspace/maximilian.linhoff/.conda/envs/check_dl0/lib/python3.12/site-packages/ctapipe/visualization/mpl_camera.py:390](http://127.0.0.1:8888/fefs/aswg/workspace/maximilian.linhoff/.conda/envs/check_dl0/lib/python3.12/site-packages/ctapipe/visualization/mpl_camera.py#line=389), in CameraDisplay.update(self)
    388 """redraw the display now"""
    389 fig = self.axes.figure
--> 390 fig.canvas.draw()
    391 if self.colorbar is not None:
    392     from matplotlib.figure import SubFigure

File [/fefs/aswg/workspace/maximilian.linhoff/.conda/envs/check_dl0/lib/python3.12/site-packages/matplotlib/backends/backend_webagg_core.py:191](http://127.0.0.1:8888/fefs/aswg/workspace/maximilian.linhoff/.conda/envs/check_dl0/lib/python3.12/site-packages/matplotlib/backends/backend_webagg_core.py#line=190), in FigureCanvasWebAggCore.draw(self)
    189     super().draw()
    190 finally:
--> 191     self.manager.refresh_all()

AttributeError: 'NoneType' object has no attribute 'refresh_all'

Expected behavior
Camera Display appears with colorbar.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions