Figure resizing with AnyWidget doesn't work as expected
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 18.8k
- Forks
- 2.8k
- Merge moyen
- 16 h 26 min
- PR mergées (30 j)
- 21
Description
See: https://community.plotly.com/t/plotly-v6-0-figure-resizing-with-ipywidgets/89424
import ipywidgets as widgets
import plotly.graph_objs as go
from ipywidgets import HTML, VBox
fig = go.FigureWidget(data=[go.Scatter(x=[1, 2, 3], y=[4, 5, 6])])
custom_css = """
<style>
.plot-container {
width: 100%;
height: 100%;
}
</style>
"""
fig.add_class("plot-container")
container = VBox(
[fig],
layout=widgets.Layout(
width="500px",
height="600px",
border="solid red",
),
)
display(HTML(custom_css), container)
5.24
6.0
A follow-up:
fig.layout.autosize = True
works, but it is poorly implemented. For example if it is set before displaying fig, it many times does not respect this decision. So I usually set it after display. Still if container size changes, it is not going well on its own and you may need to reset it. Honestly, to me it looks like sending a message through this trait which upon setting it again to same value works, although a Bool trait does not work like that. Ideally we should set this once and javascript behind the scene should observe the container size change automatically.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Aucun fichier ni test n’est nommé. Commencez par exécuter l’exemple ipywidgets fourni avec les versions 5.24 et 6.0, puis étudiez le comportement de redimensionnement de FigureWidget/AnyWidget et le suivi de autosize. Le travail est considéré comme terminé lorsque la figure remplit de manière fiable son conteneur et réagit automatiquement lorsque la taille du conteneur change, avec un test de régression pour le cas reproduit.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- jupyter-notebook, python
- Domaine
- data-visualization, frontend
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100