matplotlib / matplotlib/ipympl
automatic widget resizing for reactive design
Nessuno ha ancora preso questa issue.
- Lingua principale
- Jupyter Notebook
- Stelle
- 1.7k
- Fork
- 234
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Describe the issue
The matplotlib widget (matplotlib widgets - ipywidgets.Output()) cannot be made reactive to browser window resizing in jupyter notebooks.
Setting the canvas style properties as recomended, i.e.
fig.canvas.layout.min_width = '400px'
fig.canvas.layout.flex='1 1 auto'
fig.canvas.layout.width = 'auto'
makes the parent widget-vbox reactive, but the actual canvas jupyter-matplotlib-canvas-container and jupyter-matplotlib-canvas-div are set to a fixed width. This width seems to only be controllably by explicitly setting a width at the time of figure creation or by manually dragging the resizing handle.
The code to resize the canvas is there in mpl_widgets.js ; It just seems not to be possible to make the canvas container react to a window size change.
Paloha describes the issue more comprehensively:
https://stackoverflow.com/questions/61272384/how-to-resize-matplotlib-figure-to-match-ipywidgets-output-size-automatically
Versions
3.8.6 | packaged by conda-forge | (default, Dec 26 2020, 05:05:16)
[GCC 9.3.0]
ipympl version: 0.6.3
jupyter core : 4.7.0
jupyter-notebook : 6.2.0
qtconsole : not installed
ipython : 7.19.0
ipykernel : 5.4.2
jupyter client : 6.1.11
jupyter lab : 2.2.9
nbconvert : 6.0.7
ipywidgets : 7.6.3
nbformat : 5.1.2
traitlets : 5.0.5
Known nbextensions:
config dir: /opt/conda/etc/jupyter/nbconfig
notebook section
jupyter-datawidgets/extension enabled
- Validating: OK
jupyter-matplotlib/extension enabled
- Validating: OK
jupyter-threejs/extension enabled
- Validating: OK
jupyter_dash/main enabled
- Validating: OK
nbdime/index enabled
- Validating: OK
plotlywidget/extension enabled
- Validating: OK
voila/extension enabled
- Validating: OK
jupyter-js-widgets/extension enabled
- Validating: OK
appmode/main enabled
- Validating: OK
nbextensions_configurator/config_menu/main enabled
- Validating: problems found:
- require? X nbextensions_configurator/config_menu/main
tree section
jupyter_server_proxy/tree enabled
- Validating: OK
nbextensions_configurator/tree_tab/main enabled
- Validating: problems found:
- require? X nbextensions_configurator/tree_tab/main
JupyterLab v2.2.9
Known labextensions:
app dir: /opt/conda/share/jupyter/lab
@bokeh/jupyter_bokeh v2.0.4 enabled OK
@jupyter-voila/jupyterlab-preview v1.1.0 enabled OK
@jupyter-widgets/jupyterlab-manager v2.0.0 enabled OK
@jupyterlab/git v0.23.3 enabled OK
@jupyterlab/latex v2.0.1 enabled OK
@jupyterlab/plotly-extension v1.0.0 enabled X
@jupyterlab/toc v4.0.0 enabled OK
@jupyterlab/vega3-extension v2.0.0 enabled OK
jupyter-threejs v2.2.0 enabled OK
jupyterlab-dash v0.4.0 enabled OK
jupyterlab-datawidgets v7.0.0 enabled OK
jupyterlab-kernelspy v2.2.0 enabled OK
jupyterlab_variableinspector v0.1.0 enabled X
nbdime-jupyterlab v2.0.1 enabled OK
plotlywidget v4.14.3 enabled OK
The following extension are outdated:
@jupyterlab/plotly-extension
jupyterlab_variableinspector
Consider running "jupyter labextension update --all" to check for updates.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia in mpl_widgets.js e riproduci il problema con un widget matplotlib in un ipywidgets.Output all’interno di un notebook Jupyter. Esamina come jupyter-matplotlib-canvas-container e jupyter-matplotlib-canvas-div ricevono la loro larghezza durante il ridimensionamento del browser. Il lavoro è completato quando il canvas segue il widget padre al variare delle dimensioni della finestra, senza trascinare manualmente la maniglia di ridimensionamento.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- javascript, jupyter, jupyter-notebook
- Ambito
- data-visualization, frontend
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 42/100