Plotly object not displayed by ipywidgets Button
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 18.8k
- Forks
- 2.8k
- Merge medio
- 16 h 26 min
- PR fusionados (30 d)
- 21
Descripción
Description
I am not sure if this is a bug or just something that is not yet supported. When trying to display plotly plots (plotly object) by clicking the Button widget, I run into some issues. Regarding the Databricks issue, I have also contacted them as I am not sure that error is on the plotly side. The Button displays other objects (such as their IntSlider) correctly.
Local
Plotly object is simply not displayed (no error is thrown). Same happens if the fig is defined outside the on_click function and only fig.show() is called:

Databricks
Uncaught ReferenceError: Plotly is not defined is thrown. Same happens even if plotly is defined at any place (e.g. inside the on_click function).

Reproduce
Minimal working example code:
import ipywidgets as widgets
import plotly.graph_objects as go
output_button = widgets.Output()
button = widgets.Button(
description='Fail to show plotly object',
disabled=False,
button_style='success',
icon='',
layout=widgets.Layout(width='480px', height='60px'),
style={'description_width':'initial'})
def fun_output(b):
with output_button:
print("Normal output works!")
fig = go.Figure()
fig.add_scatter(
x = [1, 2, 3, 4],
y = [3, 4, 5, 6],
opacity=0.8)
fig.show()
print("Plotly object not displayed!")
button.on_click(fun_output)
display(button, output_button)
Expected behavior
Expected the Plotly plot to be shown.
Context
- ipywidgets version 8.0.6
- Operating System and version: Win10
- Browser and version: /
Troubleshoot Output
sys.version:
3.10.0 | packaged by conda-forge | (default, Nov 10 2021, 13:20:59) [MSC v.1916 64 bit (AMD64)]
platform.platform():
Windows-10-10.0.19044-SP0
where jupyter:
C:\Users<user_name>.conda\envs\sandbox\Scripts\jupyter.exe
pip list:
Package Version
----------------------------- ---------
asttokens 2.2.1
attrs 23.1.0
backcall 0.2.0
backports.functools-lru-cache 1.6.4
certifi 2022.12.7
colorama 0.4.6
contourpy 1.0.7
cycler 0.11.0
debugpy 1.5.1
decorator 5.1.1
et-xmlfile 1.1.0
executing 1.2.0
fastjsonschema 2.16.3
fonttools 4.38.0
importlib-metadata 6.0.0
ipykernel 6.15.0
ipython 8.10.0
ipywidgets 8.0.6
jedi 0.18.2
jsonschema 4.17.3
jupyter_client 8.0.3
jupyter_core 5.2.0
jupyterlab-widgets 3.0.7
kiwisolver 1.4.4
llvmlite 0.39.1
matplotlib 3.6.3
matplotlib-inline 0.1.6
nbformat 5.8.0
nest-asyncio 1.5.6
numba 0.56.4
numpy 1.24.1
openpyxl 3.1.1
packaging 23.0
pandas 1.5.3
parso 0.8.3
pickleshare 0.7.5
Pillow 9.4.0
pip 22.3.1
platformdirs 3.0.0
plotly 5.14.1
prompt-toolkit 3.0.36
psutil 5.9.0
pure-eval 0.2.2
Pygments 2.14.0
pyparsing 3.0.9
pyrsistent 0.19.3
python-dateutil 2.8.2
pytz 2022.7.1
pywin32 305.1
pyzmq 23.2.0
setuptools 65.6.3
six 1.16.0
stack-data 0.6.2
tenacity 8.2.2
tornado 6.2
traitlets 5.9.0
typing_extensions 4.4.0
wcwidth 0.2.6
wheel 0.37.1
widgetsnbextension 4.0.7
wincertstore 0.2
zipp 3.14.0
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con el ejemplo mínimo en los puntos de entrada fun_output callback, output_button y button.on_click, reproduciéndolo con las versiones indicadas de ipywidgets 8.0.6 y plotly 5.14.1. Compara el comportamiento local y el de Databricks, incluido el error del navegador indicado; se considera terminado cuando la figura de Plotly se renderiza después de hacer clic en el Button en ambos contextos.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- jupyter-notebook, python
- Área
- frontend
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 35/100