Skip to content

Incompatible FigureWidget with ipywidgets 8.0.0rc0 #3686

Closed
ml-struct-bio/cryodrgn
#138
@JP-Ellis

Description

@JP-Ellis

Plotly's FigureWidget does not appear to be compatible with the upcoming ipywidgets release.

python -m venv .venv
. ./.venv/bin/activate
pip install plotly jupyterlab ipywidgets==8.0.0rc0
jupyer-lab

If using directly the FigureWidget as the output of the cell, the figure is shown by with the following error:

import plotly.graph_objects as go

go.FigureWidget(go.Scatter(x=[1, 2, 3], y=[1, 4, 9]))
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
File /tmp/josh/bug-report/.venv/lib/python3.10/site-packages/IPython/core/formatters.py:921, in IPythonDisplayFormatter.__call__(self, obj)
    919 method = get_real_method(obj, self.print_method)
    920 if method is not None:
--> 921     method()
    922     return True

File /tmp/josh/bug-report/.venv/lib/python3.10/site-packages/plotly/basewidget.py:741, in BaseFigureWidget._ipython_display_(self)
    737 """
    738 Handle rich display of figures in ipython contexts
    739 """
    740 # Override BaseFigure's display to make sure we display the widget version
--> 741 widgets.DOMWidget._ipython_display_(self)

AttributeError: type object 'DOMWidget' has no attribute '_ipython_display_'

On the other hand, if the FigureWidget is used within other widgets, the figure does not appear at all (though there isn't any error message):

import plotly.graph_objects as go
from ipywidgets import widgets

widgets.VBox([
    widgets.HTML("<p>Start</p>"),
    go.FigureWidget(go.Scatter(x=[1, 2, 3], y=[1, 4, 9])),
    widgets.HTML("<p>End</p>"),
])

image

This was generated using Plotly 5.7.0 and ipywidgets 8.0.0rc0 all within JupyterLab 3.3.4.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions